Guillermo Austin Kim
Posts
998 posts[Arm프로세서] Armv7: 파이프라인의 어느 단계에서 익셉션이 발생할까?
ARM 코어는 명령어 파이프라인(instruction pipeline)을 구조 내에서 명령어를 실행합니다. 파이프라인(pipeline)은 다양한 CPU 아키텍처에서 지원하는 기법으로, 명령어를 읽어 순차적으로 실행하는 방식입니다. 한 번에 한 개의 명령어만 실행하는 게 아니라, 한 개의 명령어가 실행되는 도중에 다음 명령어 실행을 시작하는 방식으로, 병렬로 동시에 여러 개의 명령어를 실행하는 기법입니다. 파이프 라인의 관점으로 익셉션의 동작 원리를 파악하려면 익셉션이 파이프 라인의 어느 단계에서 발생하는지 알아야 하는데, 다음 그림을 보면서 이 내용을 배워보겠습니다. 그림 8.12 파이프라인 구조에서 익셉션의 처리 과정 파이프라인의 어느 단계에서 어떤 익셉션이 발생하는지 설명하기 전에, 먼저 간단히
[Arm프로세서] Armv7: 파이프라인과 익셉션
이제까지 ARM 프로세서가 익셉션을 감지하면, 다음과 같은 동작을 수행한다는 내용을 배웠습니다. ❑ ARM의 동작 모드를 바꾼다. ❑ 익셉션의 종류별로 지정된 주소로 프로그램 카운터를 브랜치한다. 이와 같은 익셉션의 세부 동작 원리와 더불어 파이프라인 관점으로 익셉션을 분석할 필요가 있습니다. ARM 프로세서에서는 명령어를 파이프 라인 구조 내에서 처리하는데, 익셉션을 유발하는 시점이 파이프 라인 실행 단계 별로 다르기 때문입니다. ARM 코어가 파이프 라인의 어느 단계에서 어떤 종류의 익셉션을 유발하는지 알면, 자연히 다음과 같은 내용도 알게 됩니다. ❑ 익셉션을 유발한 명령어 다음 명령어를 어떻게 실행해야 할까? ❑ ARM
[Arm프로세서] 익셉션(Exception) 동작 슈도 코드 소개
Armv8 문서를 보면 Arm 코어에서 하드웨어적으로 처리하는 동작을 슈도 코드로 표기한 부분을 볼 수 있습니다.문서 이름과 해당 절은 다음과 같습니다. * 문서 이름: DDI0487Fc_armv8_arm.pdf * 해당 절 Part J Architectural Pseudocode J1.1 Pseudocode for AArch64 operation J1-7612 J1.1.1 aarch64/debug J1.1.2 aarch64/exceptions J1.2 Pseudocode for AArch32 operation 샘플 코드에 익숙한 소프트웨어 개발자들에게 샘플 혹은 슈도 코드는 유익한 정보입니다.특히 하이퍼바이저나 트러스트존과 같은 Arm Extention 기능의 동작 원리
[IT에세이] 가서는 안되는 막장 IT 업체의 특징
책이 출간된 후 독자분들로부터 다양한 이메일을 받았는데요. 책의 내용에 대한 질문보다는 '진로에 대한 고민'이 많았습니다. 제가 진로에 대해 답을 드릴 수 있는 자격이 있는지 모르겠지만, 제가 아는 선에서 최대한 자세히 답신을 드렸습니다. 그 다음으로 궁금해 하는 질문은 "어떤 IT 업체가 좋은지 모르겠다"입니다. 한 걸음 더 나아가 "면접을 본 다음, 일을 해보지 않고 그 IT 업체가 좋은지 나쁜지 확인할 수 있는 방법이 있는가"라는 질문도 받았는데요. 이 질문을 받고는 바로 답을 드리진 못했습니다. 조금 어려운 질문 같다는 생각이 들었는데요. 사실 저도 이런 의문을 거의 품어본 적이 없었거든요. 책이 출간된 이후 다양한 개발자들과 교류하면서 많은 정보를 얻게 됐는데요. 교류를 통해 얻은 정보로 이제는
[ARM프로세서] 반도체 개발 과정 오버뷰(Overview)
이번 포스트에서는 반도체 개발 과정에 대해서 알아보겠습니다. 1. 스팩 확정, RTL 설계(베릴로그), 합성 검증 먼저 반도체 회사의 마케팅 부서에서 반도체의 스팩을 정합니다. 이후 RTL이란 툴을 사용해 C 코딩과 같이 로직을 코딩합니다. RTL로 반도체 로직을 설계하는 것이라 볼 수 있죠. 이어서 설계한 내용을 바탕으로 툴을 돌립니다. 이를 Synthesis 혹은 합성이라고 부르기도 합니다. 합성한 결과를 갖고 PC 환경에서 시뮬레이터를 돌려서 검증을 시도합니다. 이 과정을 거쳐서 반도체 기능을 수행하는 반도체 모듈이 만들어지게 되는 것이죠. 2. FPGA 검증/Back-End 개발 이렇게 충분히 시뮬레이션을 한 다음에, 그 결과를 FPGA에 넣어서 시스템 반도체에 대한 검증을 시도합니다. FPG

