프로세서와 정보를 교환하는 장치
디지털 신호 또는 아날로그 신호를 포함한다.
프로세서와는 메모리 장치와 같이 디지털 신호인 더으레스, 데이터 및 제어 신호를 통해서 연결 된다.
입출력 장치 제어
입출력 장치를 제어하기 위해서는 어드레스 할당이 필요하고 데이터를 교환하기 위한 데이터 버스와 제어 신호 사용
표준 I/O 맵 방식(I/O-mapped peripheral)
전용의 입출력 장치 주소 공간을 할당하여 사용
인텔의 x86 CPU 계열이 대표적
메모리 맵 방식(Memory mapped peripheral)
메모리 주소 공간의 일부를 활용하여 사용
대부분의 임데디드 프로세서에서 사용 됨
메모리 맵 방식과 I/O 맵 방식
구분 | 메모리 맵 방식 | I/O 맵 방식 |
대표적인 프로세서 | ARM, MIPS, PowerPC, M68K … | x86 계열 |
입출력 장치의 영역 | 메모리의 일부를 I/O 장치로 사용 | 메모리 영역과는 별도의 I/O 번지 영역이 존재 |
명령어 | 메모리와 I/O 장치 모두 메모리 동작 명령으로 억세스 하며, 각 영역의 구분은 어드레스로 한다. | 메모리 억세스 명령과 I/O 억세스 명령(in/out)이 구분 |
하드웨어 | 어드레스를 해석하는 디코더 회로에 따라 메모리 혹은 I/O 장치가 선택 | 메모리 번지와 I/O 번지를 구분하는 신호가 존재. |
주의 사항 | - I/O 영역은 Non-cacheable로 설정해야 한다 - I/O 영역 변수는 volatile type으로 선언해야 한다. |
입출력 장치의 자원 관리
폴링 방식
> 한 프로그램이나 장치에서 다른 프로그램이나 장치들이 어떤 상태에 있는지를 지속적으로 검사하는 전송 제어 방식
>입출력 장치의 접속 여부 및 데이터 전송의 요청과 종료를 검사한다.
인터럽트
> 프로세서는 일련의 처리를 수행하고, 주변장치에서 입출력 처리 동작이 필요한 경우 프로세서에게 진행 중 이던 명령을 멈추고 새로운 동작을 할 수 있도록 한다.
>프로세서는 한번에 한개의 명령만을 수행할 수 있다.
>인터럽트를 이용하면 멀티태스킹을 지원할 수 있도록 한다.
>사용자는 모든 작업이 동시에 수행되는 것처럼 보이게 동작한다.
DMA 방식
>DMA(Direct Memory Access)방식은 CPU의 개입 없이 입출력 장치와 기억 장치사이에 데이터를 전송하는 방식
즉 프로세서 개입 없이 입출력 장치와 기억 장치 사이의 데이터를 전송하는 방식으로 다른 버스 마스터가 주기억 장치를 접근 하지 않는 동안에 데이터를 교환
인터럽트 인터페이스
제어기
>입출력 장치에서 발생되는 인터럽트의 요청을 제어한다.
>하드웨어에 따라 인터럽트 응답을 위한 신호도 제공된다.
인터럽트 요청 (interrupt Request)
>외부 장치에서입출력 동작에 대한 처리를 프로세서에 요청
>인터럽트의 발생은 하드웨어적으로 이루어 진다. 따라서 인터럽트가 발생하면 프로세서가 스스로 프로그램의 개입 없이 일련의 동작을 수행해야 한다.
>인터럽트 Vector -> 인터럽트 서비스 루틴을 처리하기위한 명령 또는 위치가 저장된 메모리 공간
인터럽트 Vector 주소 지정 방식
> 고정 인터럽트(Fixed interrupt) -> 인터럽트가 발생시 처리할 어드레스가 지정되어 변경이 않 된다.
>지정된 어드레스에 인터럽트를 처리하기 위한 명령 또는 위치가 저장되어 있다.
>벡터 인터럽트(Vectored interrupt) ->일반적인 마이크로프로세서 장치에서 여러 개의 주변 장치가 시스템 버스에 연결되어 사용되는 경우
>주변장치가 인터럽트를 처리할 주소를 제공
>인터럽트의 요청에 따라 프로세서는 정해진 절차에 의하여 발생 된 인터럽트의 처리 여부를 결정하고 인터럽트를 서비스하는 절차(ISR : Interrupt Service Routine)를 수행한다.
인터럽트 발생의 예
>시리얼로 데이터 입력 완료
>시리얼 데이터 전송 준비 환료, 또는 전송 에러 발생
>이더넷 데이터 수신 완료, 이더넷 전송에러 등
'임베디드 > linux kernel with udoo' 카테고리의 다른 글
8.ARM (0) | 2022.07.08 |
---|---|
7. 임베디드 시스템 설계 절차 (0) | 2022.07.07 |
4. 메모리 (0) | 2022.07.04 |
3.프로그램 (0) | 2022.07.01 |
2.마이크로 프로세서와 SoC (0) | 2022.06.30 |