반응형
계속 한번 Data 저장장치, Processor, 컴퓨터의 구성요소, Instruction Set Architecture (ISA - 명령어 집합)에 데하여 알아보겠습니다.
Safe Place for Data
휘발성 주기억장치
- 휘발성 주기억장치는 전원을 끄면 명령어와 데이터가 사라지는 메모리를 말합니다.
- 예로는 DRAM(Dynamic Random Access Memory)이 있습니다. 이 메모리는 데이터 접근 속도가 빠르지만 전원이 끊어지면 데이터가 사라집니다.
비휘발성 보조 메모리
- 비휘발성 보조 메모리는 전원이 끊어져도 데이터를 유지할 수 있는 저장 장치를 의미합니다.
- 자기 디스크: 하드 디스크 드라이브(HDD)와 같은 장치로, 자기 데이터를 물리적으로 저장합니다.
- 플래시 메모리: 솔리드 스테이트 드라이브(SSD)와 같은 형태의 메모리로, 빠른 데이터 접근 속도를 제공합니다.
- 광디스크: CD, DVD, 블루레이 디스크와 같은 매체를 통해 데이터를 저장합니다.
비휘발성 메모리
- 비휘발성 메모리는 데이터를 영구적으로 유지하는 메모리입니다.
- NVDIMM-N: DRAM과 플래시 메모리를 결합한 형태로, DRAM에 데이터를 먼저 저장하고, 전원이 끊어지면 데이터를 플래시 메모리로 옮겨 저장합니다.
- NVDIMM-P: 인텔 옵테인 DCPMM(데이터 센터 영구 메모리 모듈)을 사용하는 기술로, 고성능과 영구적 데이터 저장을 모두 제공합니다
UniProcessor
UniProcessor는 단일 코어의 단일 CPU를 의미합니다. UniProcessor은 시간이 지날수록 성능이 점점 향상되고 있습니다. 과연 이유는 무엇일까요?
1. Technology Improvement (기술 발전의 요인)
- Processor (프로세서) - 공정 기술의 발전
- 논리 용량(성능): 연간 약 30% 증가하고 있습니다.
- 클럭 속도: 연간 약 20% 증가했습니다.
- Memory (메모리)
- DRAM 용량: 연간 약 60% 증가(3년마다 4배 증가).
- 메모리 속도: 연간 약 10% 증가하고 있습니다.
- 비용 대비 성능: 연간 약 25% 개선됩니다.
- Disk (용량)
- 용량: 연간 약 60% 증가합니다.
Moore's Law (무어의 법칙)
- 18개월 마다 반도체 IC칩에 들어가는 트랜지스터의 양이 2배로 증가합니다.
- 트랜지스터 수가 많을수록 성능이 향상됩니다.
Hwang's Law (황의 법칙)
- 12개월마다 플래시 메모리의 칩 수가 2배로 증가합니다.
2. Computer Architecture (컴퓨터 구조)
- 병렬 처리 활용 - 단일 프로세서
- 파이프라이닝: 동일한 작업을 여러 단계로 나누어 동시에 처리할 수 있습니다.
- 슈퍼스칼라: 슈퍼스칼라 프로세서는 최대한 병렬성을 유지하여 프로세서 모듈이 개입하고 최대한 빠른 성능을 높이기 위해 지원하는 프로세서입니다.
- 멀티 코어 프로세서: 여러 프로세서를 활용하여 병렬 처리를 수행할 수 있습니다.
- 미디어 명령어(SIMD): 미디어 벡터링 처리를 통해 고속 처리를 수행할 수 있습니다.
- 캐시 메모리: CPU, 캐시, DRAM의 성능을 최적화하여 비용은 상승하나 용량은 감소시킬 수 있습니다.
Below Your Program
- Application Sortware (응용 소프트웨어 및 시스템 소프트웨어)
- 응용 소프트웨어는 고급 언어(High-Level Language)로 작성됩니다.
- 사용자의 요구에 따라 다양한 기능을 수행하는 소프트웨어로, 애플리케이션, 게임, 비즈니스 소프트웨어, 데이터베이스, 웹 브라우저 등 다양한 종류가 있습니다.
- System Software (시스템 소프트웨어)
- 시스템 소프트웨어는 하드웨어와 응용 소프트웨어 사이의 인터페이스 역할을 수행합니다.
- 주로 컴퓨터 시스템을 관리하고 운영하는 데 사용됩니다.
- Operation System
- I/O 작업: 입력과 출력을 제어하고 관리합니다.
- Memory 및 Storage 할당: 메모리와 저장 공간을 효율적으로 할당합니다.
- Scheduling 및 Resource 공유: 프로세서 시간, 메모리, I/O 등 컴퓨터의 자원을 여러 응용 프로그램 사이에서 적절히 분배하고 관리합니다.
- Compiler(컴파일러)
- High-Level Language를 hardware 명령어 로 변환합니다. 이 과정에서 source code를 machine code로 컴파일하여 processor가 실행할 수 있도록 만듭니다.
- Hardware(하드웨어)
- Processor: 컴퓨터의 "두뇌" 역할을 하며 명령어를 실행합니다.
- Memory: 프로그램과 데이터를 저장하는 공간으로, 주기억장치(DRAM)와 보조기억장치(디스크, 플래시 메모리)가 포함됩니다.
- I/O Controller: 입력 및 출력 장치를 제어하고 관리합니다.
Level of Program Code
High-Level Language
- 문제 영역에 가까운 추상화 수준을 제공합니다.
- 생산성 및 휴대성을 제공합니다.
Assembly Language
- 명령을 텍스트로 표현한 언어입니다.
- 기계어에 직접 대응하며 하드웨어의 기능을 보다 구체적으로 제어할 수 있습니다.
Hardware Representation
- Binary (2진수): 컴퓨터가 사용하는 가장 기본적인 데이터 표현 형식으로, 0과 1로 구성됩니다.
- 인코딩된 Instruction & Data: 컴퓨터 하드웨어가 처리할 수 있도록 명령어와 데이터를 인코딩하여 저장하고 실행합니다.
Computer System Organization
- Datapath (데이터 경로): 산술 연산을 수행합니다. aka. 일하는 애들
- Control : 데이터 경로, 메모리 및 I/O 장치에서 수행해야 할 작업을 알려줍니다.
Input Device Inputs Object Code
- Input Device: 키보드, 마우스, Network
Programs (as Machine Code)are Stored in Memory
Sequential Execution (순차 집행)는 machine code 프로그램을 실행하는 주요 방식입니다. 이는 프로그램을 순차적으로 실행하며 다음과 같은 세 단계를 포함합니다.
- Fetch (명령어 가져오기)
- 프로세서가 program counter에 의해 현재 실행해야 할 명령어의 주소를 지정합니다
- 그 주소에 저장된 명령어를 memory에서 instruction register로 가져옵니다.
- Decode (명령어 해독)
- instruction register에 저장된 명령어를 해독합니다.
- 명령어를 분석하여 수행해야 할 작업을 결정합니다.
- 필요한 경우, 명령어에 포함된 오퍼랜드(피연산자)를 파악하고 가져옵니다.
- Execute (명령어 실행)
- 해독된 명령어를 기반으로 작업을 수행합니다.
- ALU(Arithmetic Logic Unit)를 사용하여 산술 및 논리 연산을 수행합니다.
- 메모리에서 데이터에 접근하거나, I/O 장치를 제어하는 등의 작업을 수행합니다.
- 명령어 수행 결과를 register에 저장하거나, 메모리에 기록합니다.
Processor Fetches an Instruction
- 프로세서가 메모리에서 Instruction set(명령어)를 가져옵니다
- PC: 실행 중인 명령어의 메모리 주소를 추적하는 컴퓨터 프로세서에 등록합니다.
- 내가 다음에 실행해야 하는 명령어 주소를 저장하는 Register입니다.
- PC: 실행 중인 명령어의 메모리 주소를 추적하는 컴퓨터 프로세서에 등록합니다.
Instruction Decode & Execution
- Control은 명령어를 디코딩(Decoding)하여 실행할 것을 결정합니다.
- Instruction Set Architecture(명령어 집합)에 맞게 해독합니다.
- 데이터 경로는 컨트롤의 지시에 따라 명령을 실행합니다.
Hardware / Software Interface
- 이 주제의 제목은 "Hardware/Software Interface" 로, 하드웨어를 작동시키기 위해서는 소프트웨어가 필요하기 때문입니다.
- Instruction Set Architecture (ISA)는 프로그래머가 바이너리 프로그램을 작동시키기 위해 알아야 할 모든 것을 포함합니다.
- ISA에는 명령어, 산술 논리 장치(ALU), 사용 가능한 레지스터 및 레지스터 크기 등이 포함됩니다.
- 인터페이스는 컴퓨터의 성능에 영향을 미치기 때문에 중요합니다.
- 또한 주어진 명령어 세트가 다른 기계에서 작동할 수 있도록 합니다.
- 주어진 ISA는 하드웨어에서 다른 구현을 가질 수 있습니다.
- Computer Architecture와 Computer Organization을 구분합니다.
Instruction Set Architecture (ISA)
- ISA는 소프트웨어와 하드웨어를 구분하는 인터페이스를 설명합니다.
- ISA는 소프트웨어와 하드웨어 간의 연결을 제공합니다.
- 주어진 명령어 집합이 있으면 소프트웨어 프로그래머와 하드웨어 엔지니어는 어느 정도 독립적으로 작업할 수 있습니다.
- ISA는 사용 가능한 하드웨어 기술 중에서 가장 높은 성능을 발휘하도록 설계되었습니다.
- RISC-V
- Open source RISC(Reduced Instruction Set Computing)입니다.
- UC Berkeley에서 2010년에 개발되었습니다.
Computer Architecture vs Organization
- Architecture(물리적인 Hardware Unit): 프로그램의 논리적 실행에 직접적인 영향을 미치는 시스템 속성입니다.
- 프로그래머에게 보이는 것:
- 명령어 집합 (instruction set)
- 데이터 표현 (data representation)
- I/O 메커니즘
- 메모리 주소 지정 (memory addressing)
- ISA 유형: RISC, CISC, VLIW, Superscalar, CRISC
- 예: IBM370/x86/Pentium(CISC), ARM(RISC), Intel Core(CRISC), MIPS(RISC 및 Superscalar)
- Organization: 프로그래머에게 투명한 물리적 세부사항입니다.
- 명령어의 하드웨어 구현 (hardware implementation of an instruction)
- 제어 신호 (control signals)
- 메모리 기술 (memory technology)
- 예: System/370 아키텍처는 IBM 컴퓨터에서 사용되었으며, 이들은 조직에 따라 크게 다릅니다.
반응형
'⚙️ Computer Architecture' 카테고리의 다른 글
[Computer Architecture] RISC-V (0) | 2024.07.13 |
---|---|
[Computer_Architecture] Instruction Set (0) | 2024.07.11 |
[Computer_Architecture] Performance Part.2 (0) | 2024.06.24 |
[Computer_Architecture] Performance Part.1 (0) | 2024.06.15 |
[Computer Architecture] What is Computer Architecture? (0) | 2024.04.16 |