Computer Architecture
1. 소프트웨어 계층 : 크게 3가지로 하드웨어, 시스템 소프트웨어, 애플리케이션 소프트웨어로 구분합니다.
OS : 메모리와 저장장치 할당, 입/출력 동작 처리, 애플리케이션 병렬 처리, ...etc
컴파일러 : 고수준(High-level) 언어를 바이너리로 된 머신 코드로 변환
2. 고수준 언어 → 머신 코드
○ 고수준 언어 : C와 같은 언어로 표준화된 규격이 있습니다.
○ 어셈블리어 : 머신코드와 1:1 대응되는 저수준 언어입니다. tool 제조사, 아키텍쳐별로 구문(Syntax)이 다릅니다.
○ 머신코드 : 기계어로 CPU가 직접 실행할 수 있는 비트 단위로 쓰인 컴퓨터 언어입니다.
과정 : Compiling, Assembling, Linking, Building(빌드하는 포괄적 과정) 과정으로 고수준 언어에서 머신 코드까지 변환 과정을 거칩니다. 일반적으로 .c 소스파일을 .o 오브젝트 파일로 1:1 컴파일하고 여러 .o 파일을 링크를 통해 1:n 으로 모아 빌드하여 실행파일을 생성합니다.
3. 디바이스 컴포넌트의 예
Apple iPad 2 : 디스플레이, 배터리, 메인보드로 구성됩니다.
Apple iPad2 메인보드
A5Chip 내부
- 2개의 암 프로세서 (듀얼코어)
- GPU와 datapaths
- DRAM 인터페이스
- I/O 컨트롤 칩
Architecture 분류
현재의 컴퓨터 구조는 CPU, 메모리가 있고 프로그램을 메모리에 올려 실행시키는 구조입니다. 이 구조에 최초는 폰 노이만에 의해서 맨해튼 프로젝트 당시 제안됐는데, 이를 폰 노이만 구조라고 합니다.
● 폰 노이만 구조
폰 노이만 구조는 CPU, 메모리, 프로그램 3가지 요소가 기본 구성이며 위 그림처럼 CPU와 메모리는 분리되어있고 버스에 의해 명령어 읽기 쓰기 등이 진행됩니다. 이 때 메모리 안에 프로그램과 데이터 영역은 물리적 구분이 없어서 프로그램과 데이터가 같은 메모리 버스를 사용하게 됩니다. 즉 명령어와 데이터에 동시 접근할 수는 없습니다.
과거에는 거대한 배선 연견을 통해 연산을 수행했다고 하는데, 직전과 다른 연산을 하고 싶다면 전선을 다 바꿔야 했다고 합니다. 폰 노이만 구조를 도입한 후부터는 하드웨어는 그대로 둔 상태로 소프트웨어만 바꾸면 되어 효율이 크게 증가했다고 합니다.
하지만 단점이 생겼는데, 과거에는 CPU 속도가 상대적으로 느려서 주어진 작업에 대해 소비되는 사이클을 감소시키는게 중점이었습니다. 하지만 현재는 CPU 계산이 빠르고 메모리 접근이 지연이 커서 메모리 접근을 줄이고 빠르게 하는것이 중점입니다. 그런 면에서 폰 노이만 구조는 위와 똑같은 문제로 병목 현상이 발생합니다. DRAM이 CPU에 비해 너무 느리고, 명령어와 데이터가 같은 버스를 타니 문제가 있습니다.
이를 해결하기 위해 여러 구조가 나왔고 그 중 폰 노이만 구조와 세트로 나오는 하버드 구조가 있습니다.
● 하버드 구조
하버드 구조에 경우 기존 폰 노이만 구조에서 데이터와 명령어 인터페이스를 분리합니다. 기존 병목 현상에 주 원인은 명령어와 데이터가 구분 없이 같은 버스를 통해 이동했기 때문인데, 이를 분리하여 명령어와 데이터를 동시에 사용할 수 있도록 물리적으로 구분한 것이 하버드 구조입니다.
이외에도 modified 하버드 아키텍처, NUMA 등 여러 노력들이 있다고 합니다.
Arm Architecture
1. ARM = Advanced RISC Machines.
* CISC(Complex Instruction Set Computer) : 뜻 그대로 복잡한 명령어 셋 프로세서. 각 연산에 맞는 복잡한 명령어 집합을 매우 많이 가지고 있는 프로세서입니다. 일반적으로 인텔 계열이 CISC 프로세서입니다. 각 명령에 맞는 기능이 많은 명령어가 따로 있고 복합적이며 전력 소모가 크고 성능이 좋으며, 호환성이 절대적으로 필요한 PC환경에서 주로 쓰며, 명령어 해석에 필요한 회로가 복잡해 병렬처리가 어렵습니다.
*RISC(Reduced Instruction Set Computer) : 뜻 그대로 다이어트 시킨(줄인) 명령어 셋 프로세서로, 적은 수의 사용빈도 높은 명령어 위주로 CPU의 명령어를 최소화하여 단순하게 제작된 프로세서입니다. 전력소모가 적고, 일반적으로 명령어의 길이를 같게 만들어(Align) 각 명령어의 처리 속도, 크기를 준일화시켜 병렬 처리가 용이합니다. 일반적으로 RISC 프로세서에서 작성한 코드는 적은 명령어를 조합해 복잡한 명령을 수행하기에 프로세서에 RISC 명령어 크기는 작으나 코드 길이는 길어질 수 있습니다.
2. Architecture VS Organization
Architecture - 컴퓨터가 할 수 있는 일을 기술. 컴퓨터의 요구 사항과 설계 구현에 대한 기능적 설명
ex) 아파트, 방
Organization - 아키텍쳐 사양을 구현하는 것.
ex) 수도관, 전선, 인터넷선 등 내부 구현
'강의 > 컴퓨터구조' 카테고리의 다른 글
Computer Architecture - Memory (0) | 2023.07.26 |
---|---|
Computer Architecture - Pipeline (0) | 2023.07.25 |
Computer Architecture - Processor Mode (0) | 2023.06.30 |
Computer Architecture - Registers and Instruction Set (0) | 2023.06.30 |