2025-1 컴퓨터구조 (Introduction to Computer Architecture)

JayainHUFS·2025년 4월 23일
post-thumbnail

  • 아래의 포스팅은 한국외국어대학교 컴퓨터공학부 Mohsen Ali Alawami 교수님의 [컴퓨터구조] 강의를 기반으로 작성했습니다.
  • 또한, 상업적 의도는 전무하며, 단순 학습 용도의 교재 자료를 첨부함을 알립니다.

Main Components of Computer Architecture

Instruction Set Architecture(ISA)

Defines the set of instructions a processor can execute

ex : x86, RISC, CISC, ARM, MIPS

Microarchitecture

The internal design of a processor, including pipelines, caches, and execution units (inside of CPU)

System Architecture

The organization of processors, memory, and input/output(I/O) system


Computer Architecture Hierarchy

Lowest level from SW and Hightest level from HW

Computer Architecture

내가 어디에 있는지만 알면됨유..


Computer memory

컴퓨터는 많은 정보를 처리함 -> 어디에 저장되는가?

Memory : 데이터를 일시적(temporarily) 또는 영구적(permanently)으로 저장하는 장치

구조도

CPU ↔ RAM (자주 사용)
CPU ↔ 보조기억장치 (덜 자주 사용, 용량 큼)

Primary Memory (RAM)

프로그램 실행 명령 -> CPU가 RAM(Random Access Memory) 에서 데이터 가져옴
RAM은 자주 사용하는 데이터를 저장하며, 접근 속도가 매우 빠름
Access time: RAM ≪ SSD
전원이 꺼지면 데이터 소실됨 (휘발성)

Primary Memory의 특징

데이터는 일시적으로만 저장
프로그램 종료 또는 컴퓨터 종료 시 데이터 손실
예: 저장하지 않고 워드 종료 시 -> 입력 내용 모두 사라짐

Secondary Memory

데이터 영구 저장 목적
예: 사진 150장 업로드 시, 이미지를 저장할 공간이 필요 → 하드디스크에 저장
용량이 크고, 자주 사용되지 않음

저장 매체

사진, 문서 등은 보통 하드 드라이브(HDD, SSD)에 저장됨


Issues in computer design

1. Assumption of infinite speed

컴퓨터의 속도가 무한하다고 가정할 수 없음
실제 설계에서는 비현실적(not practical)

2. Assumption of infinite memory

메모리 또한 무한하지 않음 -> 저장공간은 항상 유한(finite)

3. Speed mismatch between memory and processor

메모리 속도와 CPU 속도 불일치 가능성
어느 한 쪽이 더 빠를 수 있음 -> 성능 저하 요인

4. Multiple processors (멀티스레딩 포함)

멀티 프로세서 시스템 설계는 관리 및 프로그래밍이 복잡함
병렬 처리, 멀티태스킹을 위해 고려되어야 함

5. Shared memory

여러 작업을 동시에 수행 시, 같은 메모리 공간을 공유
충돌(collision) 방지 위한 적절한 메모리 관리 필요

6. Optimizing performance

주요 설계 과제 중 하나
CPU 속도, 메모리 용량, I/O 속도를 균형(balance) 있게 설계해야 함
목표: 빠르고 효율적인 시스템(CPU 속도는 빠르게, 시간을 짧게)

7. Power consumption

전력 소비는 중요한 설계 이슈
에너지 효율성(energy-efficient) 높여 배터리 수명 개선

8. Security

민감한 데이터를 안전하게 보호해야 함
암호화(encryption) 및 인증(authentication) 기술 적용 필요

9. Reliability

시스템은 오랜 시간 동안 일관되게 작동해야 함 (consistency, no failure)


Computer Organization - Von Neumann architecture


Von Neumann Architecture (1)

현대 컴퓨터 구조의 기본 모델
하나의 메모리에 데이터와 명령어를 함께 저장함 -> 하드웨어 설계 단순화 가능

구성 요소

Memory: 데이터/명령어 저장
Processor
CU (Control Unit): 제어 흐름 관리
ALU (Arithmetic Logic Unit): 산술/논리 연산
Accumulator: ALU 내 결과 임시 저장
Input/Output 장치와 연결

특징

단일 메모리 구조
명령어와 데이터가 같은 메모리에서 처리됨 → 구조 간단함
하지만 병목 현상 가능


Von Neumann Architecture (2)

CPU 내부 구성 요소

ALU: 연산 담당
PC (Program Counter): 다음 실행할 명령어 주소 저장
IR (Instruction Register): 현재 명령어 저장
MAR (Memory Address Register): 접근할 메모리 주소 저장
MDR (Memory Data Register): 해당 메모리의 데이터 저장
CU: 제어 신호 생성
Accumulator: 연산 결과 임시 저장

Bus (버스)

버스는 CPU, 메모리, I/O 장치 간 데이터/주소/제어 신호 전송 통로
이 구조에서는 단일 버스(single bus) 사용
-> 명령어/데이터 전송이 한 채널로 처리됨
-> Von Neumann 병목(bottleneck) 발생 가능

근데 왜 data는 양방향성을 가질까?

write memory & read memory!

Address Bus
1D (one way)
cpu -> memory(or I/O)

Data Bus
2D (Bi-direction)
cpu <-> memory(or I/O)


Advantages of Von Neumann Architecture

1. Simplified Design

데이터와 명령어를 하나의 메모리에서 저장/처리
하드웨어 설계 단순화

2. Cost-Effective

구성 요소가 적음 -> 생산 비용 절감

3. Ease of Programming

통합된 메모리 구조로 소프트웨어 개발 간편

4. Widely Adopted

대부분의 현대 컴퓨터에서 사용 중
호환성 보장


Limitations of Von Neumann Architecture

1. Memory Bottleneck

데이터와 명령어가 같은 메모리를 공유 -> 속도 저하

2. Sequential Processing

데이터와 명령어를 동시에 처리 불가
하나씩 순차적 처리만 가능

3. Energy Inefficiency

잦은 메모리 접근으로 전력 소비 증가

4. Latency

데이터 및 명령어 패치 지연 → 시스템 전반 효율 저하


Harvard Architecture


Why Harvard Architecture is Proposed

Von Neumann 구조의 문제점
-> CPU는 명령어 읽기와 데이터 읽기/쓰기를 동시에 수행 불가
-> 이 문제를 해결하기 위해 Harvard Architecture 도입

Harvard 구조의 특징:

명령어와 데이터 저장 공간 및 버스 분리
CPU가 명령어와 데이터를 동시에 접근(parallel access) 가능 -> 처리 속도 향상

Structure of Harvard Architecture

Bus 종류 (총 4개)

Data Bus
Data Address Bus
Instruction Bus
Instruction Address Bus

핵심 구성 요소

Operational Registers: MAR, MDR
Program Counter (PC)
ALU (산술논리연산장치)
Control Unit (CU)
Input/Output System

구조 요약

2개의 메모리 시스템 (Instruction Memory, Data Memory)
4개의 독립된 버스 사용
명령어와 데이터의 독립적 흐름 확보
메모리 접근이 분리되어 버틀넥 현상 완화


Advantages of Harvard Architecture

1. Fast and Efficient Data Access

명령어와 데이터를 각각의 메모리 공간에 저장(Seperated)
병렬적/동시적 접근 가능 → 빠르고 효율적

2. Better Performance

병렬 처리와 메모리 분리 덕분에 성능 향상

3. Real-time Application에 적합

빠른 응답이 중요한 임베디드 시스템 등에 적합


Disadvantages of Harvard Architecture

1. Complexity

CPU 설계가 더 복잡함 -> 제조 비용 상승

2. Higher Power Consumption

두 개의 메모리 사용 -> 더 많은 전력 소비


내가 어셈블리어를 할 수 있을까?_?;;;

profile
"REAL" 밑바닥부터 시작하는 데이터분석

0개의 댓글