현재 게시물은 대학 강의 및 Computer Organization and Architecture 을 참고하여 작성되었습니다.
Architecture vs Organization
- Computer Architecture
- 프로그래머에게 보이는 시스템 속성으로, 프로그램의 논리적 동작에 대한 직접적인 영향력을 지닌다.
- ex) instruction set, data type, I/O, word size 등
- Computer Organization
- 아키텍처 명세를 구현하는 운영 단위 및 상호 연관성
- ex ) 하드웨어 명세, 주변기기와 컴퓨터 사이의 인터페이스, 메모리 기술 등 ...
아키텍처와 구조의 예시
https://en.wikipedia.org/wiki/IBM_System/370
IBM System/370 은 아키텍처라는 개념을 최초로 도입한 컴퓨터로, 동일 아키텍처를 사용하는 다양한 모델을 가진다.
아키텍처는 시스템에 대한 일종의 명세로, 같은 아키텍처를 구현하는 모델은 동일한 instruction set 및 설정 구성을 사용함으로써 소프트웨어를 공유하여 사용할 수 있다는 장점이 존재한다. 따라서 동일 아키텍처를 사용하는 경우 소프트웨어에 대한 재투자 및 낭비 없이 하드웨어 및 모델만을 교체할 수 있게 된다.
Structure & Function
Heirarchical System
- 관계된 다양한 서브시스템의 집합.
- 복잡한 시스템에 대해 계층적 특성을 기반으로 설명하는 경우, 디자인 및 설명이 편리해진다.
- 개발자 및 디자이너는 자신이 담당하는 계층에 대해서만 고려할 수 있다.
- -> structure 및 function 을 계층적으로 고려
Structrure & Function
- Structure : 각각의 컴포넌트들이 서로 관계되어 있는 방식
- Function : 각각의 컴포넌트들이 Structure 의 일부로서 수행하는 역할
Structure
- Microprogramming
- : 처음부터 거의 전체 명령어를 만들어두고 이를 사용하는 방식.
- 보통 구조가 복잡.
- CISC / Intel x86의 기반
- Hardwired logic
- 게이트, 플립플롭과 같은 논리 회로를 기반으로 부울 대수를 이용하여 명령을 조합하는 방식.
- 구조가 단순.
- RISC / 스마트폰 칩셋
Multicore Structure
하나의 CPU 내에 다수의 코어가 존재하는 구조
- CPU
- instruction 을 메모리에서 읽어와 실행
- ALU, control unit, register 등
- Core
- CPU 내에 탑재된 개별 프로세싱 유닛
- 기능적으로 단일 CPU 시스템의 CPU와 유사
- 다른 코어들과 상호작용하며 동작
- Processor
- 하나 이상의 코어를 가진 물리적인 조각 단위
Function
- Data Processing
: 데이터 처리 방식. 데이터는 다양한 형태 및 범위를 가지며, 각 데이터 처리에 대한 요구 사항은 다양할 수 있다. - Data Storage
: 데이터 처리 중 어느 순간은 잠시 저장할 필요가 있다 ( Short Term ).
오랜 기간 정보를 저장할 필요가 있다. ( Long Term ) . - Data Movement
: 주변 기기로부터의 I/O 작업 또는 멀리 떨어진 기기와의 Data Communication 이 필요하다. - Control
: 컴퓨터 안에서 리소스를 제공하거나 성능을 조율해야 한다.
Cache memory
- 메인 메모리보다 훨씬 작고 빠른 메모리로, CPU가 사용할 데이터를 예측하여 저장해둔다.
- 데이터 예측은 locality 을 이용한다.
- 통상 hit ratio 는 95% 이상이므로 메모리에 직접 접근할 필요를 줄여 읽기 속도를 높인다.
Cache heirarchy
L1 ~ L4 계층이 있으며 ( 경우에 따라 늘거나 감소 ), 통상적으로 L1 에서 L4 로 갈수록 성능이 감소하고 용량은 증가한다.
L1 및 L2 계층은 코어 내부에 존재하며, 상위 계층과는 달리 데이터(data)와 명령(Instruction) 을 구분하여 저장한다. 이 경우 캐시의 크기가 절반씩으로 고정되어 캐시 사용의 융통성은 감소하나, 데이터와 명령을 동시에 parallel 하게 읽을 수 있으므로 전반적인 효율 및 속도가 증가한다.
'CS > 컴퓨터구조' 카테고리의 다른 글
[컴퓨터구조] 컴퓨터의 성능 측정 (1) | 2022.09.22 |
---|---|
[컴퓨터구조] 암달의 법칙과 리틀의 법칙 (1) | 2022.09.19 |
[컴퓨터구조] 멀티코어 (0) | 2022.09.19 |
[컴퓨터구조] 프로세서의 발전과 제약 (0) | 2022.09.14 |
[컴퓨터구조] 컴퓨터의 발전 과정 (0) | 2022.09.12 |