반응형 일단 제가 준비한 건,261 Arm GIC, SGI ( interrupt controller, 인터럽트 컨트롤러 ) 많은 I/O device로부터 발생하는데, 이렇게 많은 장치들이 interrupt를 발생시키는데 cpu는 제한된 interrupt선을 가지고 있다. 어떻게 선택할 수 있을까?? interrupt controller (APIC, PIC, INTC, GIC..)라는 하드웨어를 가지고 구현한다. interrupt controller가 필요한 이유는 다음과 같다. 모든 I/O device는 상태 레지스터를 가지고 있는데. ISR이 발생하면 cpu는 device의 state 레지스터 값을 읽어온 후에 동직 하는데 만약 device가 엄청나게 많다면 latency가 엄청나게 오래 걸릴 것이다. 또한 여러 개의 device가 동시에 interrupt를 발생시키면 어떻게 할까?? 누구가 먼저 실행돼야 하나, 이런 문제.. 2022. 5. 31. Arm Interrupt Handling ( 인터럽트, Nested Interrupt ) Interrupt (Exception) Handling SW에서 볼 때는 중간에 어떤 인터럽트가 일어나는지 알 수 없다. 왜냐면 그냥 쭉 실행되는 것처럼 보이기 때문이다. 그렇다면 HW에서 어떻게 동작하는지 알아보자. 위에 1번에서 일어나는 일은 다음과 같다. 1. exception mode일 때의 CPSR를 SPSR에 저장한다. (CPSR과 SPSR은 같은 구조를 갖기 때문) 2. exception mode일 때의 PC값을 lr( r14 )에 저장한다. 3. CPSR의 mode bitv(i bit or f bit = 1)를 변경하여 해당 exception mode로 변경한다. ( interrupt 처리 중에 다른 interrupt는 받지 않겠다는 의미다. IRQ모드로 바뀌면 i bit가 1로 변경되고 .. 2022. 5. 31. Arm Interrupt Vectors Tables (인터럽트 벡터 테이블, IVT) Interrupt (Exception) Vectors Tables 2022.05.31 - [내가 하는 전자공학/Arm] - Arm Interrupt & Exception ( 인터럽트, 예외, 차이점 ) Arm Interrupt & Exception ( 인터럽트, 예외, 차이점 ) 이번에는 Interrupt와 Exception에 대해 알아볼까 한다. 사실 이 두 개는 혼용하여 사용하거나 대동소이하다. 굉장히 중요한 개념이니 천천히 알아보자 Interrupt 먼저 interrupt란 뭔지 알아보자 interrupt는 wpaud16.tistory.com 이전 포스팅을 보면 테이블이 생긴 이유를 알 수 있다. 간단히 말하면 Interrupt 혹은 Exception 동작이 발생되면 ARM에선 Vectors tab.. 2022. 5. 31. Arm Interrupt & Exception ( 인터럽트, 예외, 차이점 ) 이번에는 Interrupt와 Exception에 대해 알아볼까 한다. 사실 이 두 개는 혼용하여 사용하거나 대동소이하다. 굉장히 중요한 개념이니 천천히 알아보자 Interrupt 먼저 interrupt란 뭔지 알아보자 interrupt는 간단히 말해서 동작하고 있던 걸 다른 동작으로 바꾸는 것이다. 모든 I/O는 interrupt를 발생시키는데 I/O의 출력이 CPU에 연결돼 있다. 종류로는 hardware interrupt (하드웨어)와 software interrupt(소프트웨어)가 있다. 아래서 더 알아보자 interrupt는 Privilege mode에서 돌아간다. Privilege mode란, 일종의 특권을 가진 상태에서 돌아간단 의미다. 막강한 권력을 가졌다고 보면된다. 예를 들면 리눅스에서 .. 2022. 5. 31. Quartus || 사용법 ( 쿼터스, 파일 생성, 기존 프로젝트 open, verilog HDL) 기본 파일 생성하는 순서 1. 처음 실행시키면 기본 화면이 뜬다. 2. 여기서 File을 선택해서 New Project Wizard를 선택한다. 3. 아래와 같은 그림일 뜨는데 Next를 누른다. 4. 프로젝트명을 적어주는데 이때 top-level 이름과 동일하게 적어줘야한다. 근데 자동으로 동일하게 적힌다. 5. 아래 두 화면은 아무것도 안 누르고 Next를 누른다. 6. Simulation의 Format은 내가 사용할 언어를 지정한다. 본인은 Verliog HDL을 선택했다. 7. Finish를 누르면 내가 적어준 프로젝트가 생성된다. 9. 다음으로 내 test_1 프로젝트에서 또 File을 눌러서 이번엔 New를 누른다. 10. 그러면 아래와 같은 창이 뜨는데 이때 어떤 파일을 만들건지 물어보는데 .. 2022. 5. 25. 이전 1 ··· 8 9 10 11 12 13 14 ··· 53 다음