과목명 : 컴퓨터 구조(Computer Organization & Architecture)
수업일자 : 2022년 09월 29일 (목)
1. DAM(Direct Access Memory) - 직접 메모리에 접근
1-1. I/O 모듈의 정의
- CPU(프로세서)와 직접적으로 데이터를 교환할 수 있습니다.
- 특정 I/O 모듈에 의해 제어되는 장치를 구분하기 위해 주소를 사용합니다.
1-2. DAM의 정의
- I/O 모듈이 직접 기억장치와 데이터를 교환할 수 있도록 해 주는 것이 바람직하기에 프로세서는 기억 장치에 읽기/쓰기 권한을 I/O 모듈에게 부여함으로써 I/O <-> 기억 장치 간의 데이터 전송이 프로세서의 개입 없이 수행될 수 있게 합니다.
- 위와 같은 동작을 DAM(Direct Access Memory) 즉, 직접 메모리 접근 방식이라고 합니다.
2. 상호연결 조직(Interconnection structure)
2-1. 정의
- 컴퓨터는 세 개의 기본 요소들 혹은 모듈(프로세서, 기억장치 및 I/O 장치)로 구성되고 이들은 서로 통신할 수 있습니다.
- 이러한 여러 모듈들을 연결하는 경로들의 집합을 상호연결(Interconnection structure)라고 합니다.
(1) 기억 장치
- 기억 장치는 동일한 길이를 가진 N개의 단어(Word)로 구성되고 각 단어에는 고유의 주소가 할당됩니다.
- 읽기/쓰기/타이밍의 제어 신호에 따라 한 단어의 데이터를 기억 장치에 읽고 쓸 수 있으며 동작이 수행되는 위치는 주소에 의해 저장됩니다.
(2) I/O 모듈
- 읽기와 쓰기 동작이 존재하며, 외부 장치와 연결된 인터페이스를 포트라는 주소를 부여하여 식별합니다.
- 컴퓨터로 데이터를 수신하거나 주변 장치로부터 데이터를 수신받습니다.
- 컴퓨터로 데이터를 송신하거나 주변 장치로부터 데이터를 송신받고, 프로세서로 인터럽트 신호를 보낼 수도 있습니다.
(3) 프로세서
- 명령어와 데이터를 읽어들이고, 처리한 데이터를 내보내며 시스템의 전반적인 동작을 제어하기 위해 제어 신호를 사용합니다. 또한 인터럽트 신호도 받을 수 있습니다.
2-2. 상호연결 조직의 데이터 전송 유형
- Memory to processor : 프로세서는 기억장치로부터 명령어 또는 데이터를 읽는다.
- Processor to memory : 프로세서는 데이터를 기억 장치에 저장한다.
- I/O to processor : 프로세서는 I/O 모듈을 통하여 I/O 장치로부터 데이터를 읽는다.
- Processor to I/O : 프로세서는 I/O 장치로 데이터를 내보낸다.
- I/O to or from memory : I/O 모듈은 프로세서를 통하지 않고 DAM을 이용하여 기억 장치와 데이터를 직접 교환하는 것이 허용된다.
3. 버스 상호연결(Bus Interconnection)
3-1. 버스(Bus)의 정의
- 컴퓨터 버스(Bus)란, 컴퓨터 내부의 부품들 간의 또는 컴퓨터 간에 데이터를 전송하거나 받을 수 있는 통로입니다.
3-2. 버스의 특징
- 공유 전송 매체(Shared transmission medium)
여러 개의 장치들이 버스에 연결되어 있고, 그들 중의 한 장치가 전송한 신호를 버스에 접속된 다른 장치들이 모두 수신할 수 있는 것을 말합니다.
- 여러 개의 통신 경로들 또는 선(lines)들로 구성됩니다.
- 각 선은 한 비트의 신호(0, 1)를 전송할 수 있습니다.
- 컴퓨터의 주요 구성 요소들(프로세서, 기억 장치, I/O)을 연결하는 버스를 시스템 버스(System bus)라고 합니다.
3-3. 버스의 조직
- 모든 버스에서 선들은 기능에 따라 데이터 선(Data lines), 주소 선(Address lines), 제어 선(Control lines)으로 분류되고 그 외엔, 접속된 각 모듈들에게 전원을 공급하기 위한 전력 분배 선들(Power distribution lines)이 존재합니다.
(1) 데이터 선(Data lines)
- 시스템 모듈들 간에 데이터의 이동 경로를 제공합니다.
- 선(Line)의 수를 버스의 폭(Width)라고 합니다.
- 각 선이 한 비트의 정보를 전달하므로 버스의 폭이 성능에 영향을 줍니다.
(2) 주소 선(Address lines)
- 데이터 버스로 전달되는 데이터의 근원지(Source) / 목적지(Destination)을 지정합니다.
- I/O 장치를 구분하는 I/O 포트를 지정할 때도 쓰입니다.
(a) 주소 선의 상위 비트들은 버스에 연결된 모듈들을 선택할 때 사용
(b) 주소 선의 하위 비트들은 모듈 내의 기억 장치의 위치 또는 I/O 포트를 선택할 때 사용
(3) 제어 선(Control lines)
- 데이터 선과 주소 선들을 제어하기 위해 사용됩니다.
- 제어 신호는 시스템 모듈들 사이에 명령(Command)과 타이밍 정보를 모두 전달합니다.
(3-a) 제어 선의 여러 가지 기능
- 기억 장치 쓰기(Memory write) : 버스에 있는 데이터를 주소가 지정된 기억 장치에 쓴다.
- 기억 장치 읽기(Memory read) : 주소가 지정된 기억 장치의 데이터를 읽어들인다.
- I/O 쓰기(I/O write) : 버스에 있는 데이터를 주소가 지정된 I/O의 포트로 출력시킨다.
- I/O 읽기(I/O read) : 주소가 지정된 I/O 포트에서 데이터를 읽어 버스에 담는다.
- 전송 확인(Transfer ACK) : 데이터가 버스로부터 받아들여졌거나 버스 상에 실렸다는 것을 가리킨다.
- 버스 요구(Bus request) : 어떤 모듈이 DAM을 위해 버스 사용을 원하고 있음을 가리킨다.
- 버스 승인(Bus grant) : 버스를 요구한 모듈에게 버스 사용권이 허가되었음을 가리킨다.
- 인터럽트 요구(Interrupt request) : 인터럽트가 대기하고 있음을 가리킨다.
- 인터럽트 확인(Interrupt ACK) : 대기하던 인터럽트가 인식되었다는 것을 가리킨다.
- 클록(Clock) : 동작들을 동기화시키기 위해 사용된다.
- 리셋(Reset) : 모든 모듈들을 초기화한다.
3-4. 버스의 기본적인 동작
- 특정 모듈이 다른 모듈에게 데이터를 전송하고자 하는 경우
(1) 버스의 사용권을 얻고, 버스를 통하여 데이터를 전송합니다.
- 특정 모듈이 다른 모듈로부터 데이터를 받고자 하는 경우
(1) 버스의 사용권을 얻고, 적절한 제어 선과 주소 선을 통해 다른 모듈에게 요구 신호를 전달합니다.
(2) 그 이후엔 해당 모듈이 데이터를 전송해 줄 때까지 대기해야 합니다.
3-5. 다중 - 버스 계층들
(1) 버스 성능 저하의 원인
- 버스에 접속된 장치가 많을수록 전파 지연 증가
(장치들이 버스의 사용을 조정하고자 할 때 걸린 시간을 결정)
- 전체 데이터 전송 요구가 버스 용량에 접근할수록, 병목 현상이 발생
- 이에 따라 버스의 데이터 전송률을 증가시키거나, 더 넓은 버스를 사용해야 했습니다.
3-6. 다중 버스(Multiple Buses)
- 위에서 설명한 전파지연, 병목 현상이 발생되는 단일 버스의 문제점을 해결하기 위해 설계된 버스입니다.
- 고속 버스를 이용하여 데이터 요구율이 높은 장치들을 프로세서와 가깝게 배치하는 것을 말합니다.
- 버스가 프로세서에 대해 독립적인 구조를 가집니다.
4. PCI(Peripheral Component Interconnect), PCIe(PCI Express)
4-1. 정의
- 주변 장치 버스로서의 기능을 할 수 있는 고대역폭 프로세서 독립적 버스(High-bandwidth processor-independent bus)입니다.
- PCI는 고속의 I/O 모듈들(그래픽 디스플레이 접속기, 네트워크 인터페이스 제어기 등)에 대하여 더 높은 시스템 성능을 제공합니다.
- 높은 속도와 경제적인 측면에서 많이 사용되었으나, 시스템 버스와 마찬가지로 버스 기반 PCI 방식은 접속되는 장치들의 데이터율을 맞추지 못하는 문제가 발생하여 PCI Express(PCIe)이 개발되었습니다.
4-2. PCIe(PCI Express)
- 앞서 설명된 PCI의 문제점을 개선하기 위해 후속으로 발표된 PCI의 후속 인터페이스입니다.
- 기가비트 이더넷(Gigabit ethernet)과 같은 높은 데이터율의 I/O 모듈들을 지원할만큼 높은 용량을 가지고 있습니다.
- 점대점(Point-to-Point interconnect) 방식을 지원합니다.
< Cache memory primary chapter list >
(A) 기억 장치 시스템의 특성
(B) 캐시 메모리(Cache memory)의 특성
(C) 캐시 사상(Cache mapping) 기법
- 동작 원리
- 직접 사상(Direct mapping)
- 연관 사상(Associative mapping)
- 세트 연관 사상(Set associative mapping)
- 캐시(Cache) 교체, 일관성 유지
5. 기억 장치 시스템의 특성
5-1. 기억 장치 시스템의 여러 가지 주요 특성
1. Location (기억장치의 위치 구분) |
- Internal (프로세서 레지스터, 캐시, 메인 메모리) |
- External (Optical disks, Magnetic disks, tapes) |
2. Physical type (기억장치의 물리적 타입) |
- Semiconductor (레지스터, RAM ...) |
- Magnetic (HDD, tape ...) |
- Optical (CD, DVD) |
- Magneto-optical |
3. Performance (기억장치의 성능) |
- Access time |
- Cycle time |
- Transfer rate (전송률) |
4. Access method (기억장치의 접근 방법) |
- 순차 접근(Sequential access) |
- 직접 접근(Direct access) |
- 임의 접근(Random access) |
- 연관 접근(Associative access) |
5. Physical characteristics (기억장치의 물리적 특성) |
- Volatile / non volatile (휘발성 / 비휘발성 메모리) |
- Erasable / non erasable |
6. Capacity (기억장치의 전송용량) |
- Number of words |
- Number of bytes |
7. Unit of transfer (기억장치의 전송 단위) |
- Word (CPU) |
- Block (Memory, I/O, cache) |
8. Organization (기억장치의 조직) |
- Memory modules |
5-2. 기억 장치 시스템의 여러 가지 특징
- 상기 특성 표에서 위치(Location)는, 컴퓨터의 기억장치가 외부 또는 내부에 있는지 나타냅니다.
컴퓨터의 메인 메모리, 프로세서의 지역 기억장치(Local memory) 레지스터, 제어 유니트(Control unit), 캐시(Cache)같은 장치들이 내부 기억 장치에 해당되고, 외부 기억 장치는 프로세서가 입출력 제어기를 통해 엑세스 할 수 있는 주변 장치들로써 디스크, 테이프와 같은 장치가 있습니다.
- 기억 장치의 주요 특성은 용량(Capacity)입니다.
용량은 1바이트 또는 단어(Word) 단위로 표현되고 외부 기억 장치의 용량은 일반적으로 바이트 단위로 표현합니다.
- 또 하나의 주요 특성은 전송 단위(Unit of transfer)입니다.
내부 기억 장치에 있어서 전송 단위는 기억 장치의 모듈로 들어가고 나가는 데이터 선들의 수(단어의 길이와 유사하거나 그 배수)와 동일합니다.
5-3. 기억 장치의 데이터 엑세스 방식
- 기억 장치의 유형들 간에 가장 뚜렷한 차이는 데이터를 엑세스하는 방식이며 아래와 같은 유형들이 존재합니다.
엑세스 방식 | 해당 방식의 특징 | 예시 |
순차(Sequential) | - 특정 선형적 순서에 따라 엑세스 - 레코드가 저장된 위치에 따라 엑세스 시간이 달라진다. |
테이프 |
직접(Direct) | - 각 레코드나 블록이 물리적 위치에 따라 별도의 주소를 보유하고 있음. - 직접 엑세스에 의해 가까운 곳으로 접근한 뒤, 순차적 검색, 계수(Counting), 또는 대기(Waiting)에 의해서 최종 위치에 도달 |
하드 디스크 |
임의(Random) | - 기억 장치 내의 주소 지정 가능한 위치는 선으로 연결된 별도 주소 지정 메커니즘을 보유하고 있음. - 특정 위치를 엑세스하는데 걸리는 시간은 이전 엑세스 순서와는 무관하며, 항상 일정하다. |
RAM, Cache |
연관(Associative) | - 임의 접근 유형의 기억 장치 - 단어 내의 특정 비트들과 원하는 비트를 비교하여 일치하는 단어를 엑세스한다. (단어는 주소가 아닌 내용의 일부분에 의해 검색된다.) - 각 위치는 자신의 주소 지정 메커니즘을 보유하고 있음. - 검색에 걸리는 시간은 위치나 이전의 엑세스 패턴과 관계없이 일정하다. |
Cache |
5-4. 기억 장치의 성능(Performance)
- 기억 장치의 주요 특징은 용량과 함께 성능(Performance)입니다.
- 성능을 평가하는데 사용되는 주요 Parameter는 아래와 같이 세 가지입니다.
(1) 엑세스 시간(지연)
- 임의 엑세스 기억 장치에서 엑세스 시간(지연)은 읽거나 쓰는 동작을 수행하는 걸리는 시간을 의미합니다.
(즉, 주소가 기억 장치에 도달하는 순간부터 데이터가 저장되거나 읽혀지는 순간까지의 시간을 의미)
( 비임의 엑세스 기억 장치(Non-random access memory, 예시 : HDD) 에서의 엑세스 시간은 읽기-쓰기 메커니즘을 원하는 위치로 이동시키는데 걸리는 시간을 의미)
(2) 기억 장치 사이클 시간(Memory cycle time)
- 주로 임의 엑세스 기억 장치에 적용되며 특정 엑세스 시간과 다음 엑세스를 시작하기 위해 요구되는 동작에 대해 걸리는 추가적인 시간을 합한 시간입니다.
(이 부분에서 추가적인 시간은, 신호 선에서 과도 전류가 완전히 소멸되는데 걸리는 시간, 또는 읽기 동작 후 데이터가 파괴되는 저장 장치의 경우 데이터를 복원시키는데 걸리는 시간 등을 의미)
- 해당 지표는 프로세서와 무관하며 시스템 버스(System bus)와 관련이 있습니다.
(3) 전송률(Transfer rate)
- 데이터가 기억 장치로부터 전송되어 들어가거나 나오는 비율이며 임의 엑세스 기억 장치에선 1/(사이클 시간)에 해당됩니다.
5-5. 기억 장치의 물리적 유형에 따른 구분
- 반도체 기억 장치(Semiconductor memory)
- 디스크와 테이프를 위해 사용되는 자기 표면 기억 장치(Magnetic surface memory)
- CD, DVD를 위한 광(Optical)
- 자기 - 광(Magneto-optical)
5-6. 기억 장치의 물리적 특성에 따른 구분
- Decay : 시간이 경과함에 따라, 저장된 데이터의 형태가 소멸되는 것을 말합니다.(CD, HDD 등)
- Volatile memory : 전원 공급 중단 시 데이터가 소멸됩니다.
- Non volatile memory : 필요에 의해 수정될 때까지 데이터는 보존됩니다.
- Non erasable memory : 삭제 불가능한 기억 장치는 물리적으로 손상되지 않는 한 내용을 바꿀 수 없고 이러한 유형의 기억 장치를 읽기 전용 기억 장치(Read only memory, ROM)라고 하며 비휘발성입니다.
5-7. 기억 장치 설계 시 고려되어야 할 사항
(1) 주요 사항
- 용량
용량이 증대된다면 그만큼의 용량을 사용하는 응용 프로그램이 개발됩니다.
- 속도
더 높은 성능을 얻기 위해선 기억 장치의 속도가 프로세서의 속도를 따라갈 수 있는 수준이어야 합니다.
- 가격
기억 장치의 가격은 다른 요소들과 비교했을 때 합리적이어야 합니다.
(2) 적절한 상호 조정(Tradeoff) 필요
- 위의 모든 조건을 충족시킬 수 있는 이상적인 기억 장치의 개발은 현실적으로 어려우며 각 요소들 간의 적절한 상호 조정이 요구되며 아래와 같은 관계들이 성립합니다.
- 엑세스 속도가 빨리지면 비트 당 가격 상승
- 용량이 커질수록 비트 당 가격 감소, 엑세스 속도 감소
- 용량이 커질수록 비트에 대한 가격 감소, 엑세스 속도가 감소하는 딜레마에 빠지게 되며 설계자들은 용량은 비교적 적더라도 엑세스 속도가 빠른 기억장치를 사용할 수밖에 없게 되고, 이러한 문제를 해결려면 한 가지 기술에 의존하는 것보단 기억 장치 계층(Memory hierarchy)을 이용함으로써 해결할 수 있습니다.
5-8. 기억 장치 계층(Memory Hierarchy)
- 상기 이미지는 기억 장치의 전형적인 계층을 보여주고 있으며 계층의 하부로 내려갈수록 다음과 같은 현상들이 나타납니다.
(1) 비트 당 가격 감소
(2) 용량 증가
(3) 엑세스 시간 증가
(4) 프로세서에 의해 기억 장치가 엑세스되는 빈도 감소
- 더 작고 비싸며 속도가 빠른 기억 장치들은 더 싸고 느린 기억 장치들에 의해 보완될 수 있었으며 이러한 계층 구조가 성공할 수 있었던 핵심 항목은 (4)번에 의해 가능했습니다. 해당 개념은 후반부인 캐시(Cache) 설명, 가상 기억 장치(Virtual memory)에서 더 학습해 보도록 하겠습니다.
5-9. 캐시 메모리를 사용하는 이유
- 성능 증대를 위해 캐시 메모리를 사용하는 이유에 대해 아래의 예제를 확인해 보겠습니다.
'전공 수업 > 컴퓨터 구조(Computer Architecture)' 카테고리의 다른 글
[7주 차] - 캐시(Cache) 메모리 (2), 내부 기억 장치 (1) (0) | 2022.10.31 |
---|---|
[6주 차] - 메모리(데이터) 참조 지역성, 캐시(Cache) 메모리 (1) (0) | 2022.10.18 |
[4주 차] - 컴퓨터 시스템의 성능 (2), 컴퓨터의 기능과 상호 연결 (1) (4) | 2022.09.25 |
[3주 차] - 컴퓨터 시스템의 성능 (1) (0) | 2022.09.19 |
[2주 차] - 컴퓨터 시스템의 조직과 역사 (0) | 2022.09.12 |
댓글