해당 포스팅은 2023년 8월 부터 시작하는 cs 면접 스터디를 위해서 해당 이론을 공부하고 요약한 내용입니다.
매우 짧은 요약 글이므로 자세한 내용은 추후에 업로드하겠습니다.
해당 글은 계속 수정 될 수 있습니다.
컴퓨터의 구성
시스템 버스란?
cpu와 시스템 내의 다른 요소들의 사이에 정보를 교환하는 통로입니다.
system bus는 다음과 같이 세 가지 sub-bus들로 이루어져 있습니다.
- address bus
- 주소 정보를 전송하기 위한 신호선들의 집합
- 각 주소선은 하나의 주소 비트를 전송하는 데 사용하며, 전체 주소선 들의 개수가 cpu와 접속될 수 있는 최대 기억장치 용량을 결정합니다.
- address bus width
- cpu가 발생하는 주소 비트들의 수
- 16 비트로 이루어진다면 최대 64K 개 기억장소 주소를 지정할 수 있습니다.
- 단방향 전송
- data bus
- cpu가 기억장치 혹은 I/O 장치와의 사이에 데이터를 전송하기 위한 신호들의 집합
- 양방향성 전송
- data bus width
- 한번에 전송될 수 있는 데이터 비트의 수 결정
- 데이터 버스가 16bit 시스템에서는 cpu가 기억 장치로 부터 한번에 2byte 씩 읽어올수 있습니다.
- control bus
- 시스템 요소들의 동작을 제어하기 위한 신호선들의 집합
- 제어 신호 선들의 수는 cpu 와 시스템 구성에 따라 달라집니다.
- 예를 들어 memory read/write 신호와 I/O read/write 신호가 있습니다.
- 양방향성 전송
memory write time
- CPU는 데이터를 저장할 기억 장소의 주소와 저장할 데이터를 각각 주소버스와 데이터 버스를 통하여 보내면서 write signal을 activate 시킨다.
- write signal 은 쓰기 동작이 완료될 때까지 유지되어야 한다.
- 즉 write time은 데이터를 보낸 순간 부터 저장이 완료될 때까지의 시간이다.
memory read time
- cpu 가 기억장치로 주소를 보낸 순간부터 읽기 동작이 완료될 때까지의 시간이다.
- cpu가 기억 주소를 주소 버스를 통하여 기억 장치로 보내면서 read signal을 activate 시킨다.
- 일정 지연시간이 지나면 기억장치로 부터 읽혀진 데이터가 데이터 버스로 전송되며 cpu는 버스 인터페이스 회로를 통해 읽는다.
- 지연시간?
- 주소를 해독하는데 걸리는 시간 + 기억장치 내부에서 데이터를 인출하는 시간
- 지연시간?
cpu와 I/O 장치의 접속 과정
I/O 장치 역시 secondary memory 와 같이 peripheral device 이기 때문에 별도의 controller 와 interface circuit이 필요합니다.
예를 들어 cpu가 키보드로부터 데이터를 읽는 과정은 다음과 같습니다.
키보드의 어느 한 key를 누르면 그에 대응되는 ASCII 코드 7비트와 Parity bit 데이터가 키보드 controller 에 전송되며 data register에 저장됩니다.
그리고 동시에 status register에 지정된 비트 1이 세트됩니다.
이 비트는 입력 데이터가 준비되었다는 것을 가리키며 이를 In_RDY 비트라고 부릅니다.
즉 CPU는 키보드 데이터 입력을 읽으려면 status register를 읽어서 In_RDY 비트가 1로 세팅되어 있는지 검사합니다. 만약 세트되어 있다면 즉시 data register의 내용을 CPU로 읽어서 데이터 입력과정이 완료 됩니다.
그러나 만약 In_RDY 비트가 세트 되어 있지 않다면 CPU가 계속 해당 비트를 검사하며 반복합니다.
여기서 말하는 data register는 cpu와 I/O 장치 사이에서 임시 저장소 역할 하기 때문에 data buffer이라고 부릅니다.
CPU는 I/O device를 직접 제어하지 않지만 각 장치의 controller가 수행할 동작을 지정하는 command를 보내거나 status와 data를 주고 받아야합니다.
해결 하기 위한 방법은 data register 와 status register를 마치 secondary memory 처럼 주소를 배정합니다.
즉 memory r/w 동작 처럼 수행할 수 있습니다.
그래서 address bus 가 I/O controller에 연결된 이유입니다.
'Computer Architecture' 카테고리의 다른 글
CPU의 작동원리 - (1) (0) | 2023.07.30 |
---|---|
컴퓨터 구조 기초 (0) | 2023.07.29 |
댓글