컴퓨터 시스템의 기본 구성요소
- 처리기 (Processor): 중앙처리장치(CPU)
- 주기억장치 (Memory): 휘발성 메모리, 셧다운 시 메모리 내용이 사라짐
- 입출력 모듈 (I/O module): 컴퓨터와 외부 환경 간 데이터 전송
- 버스 (Bus): 처리기, 메모리, 입출력 모듈 간의 데이터 전송을 위한 통로
프로세서 (Processor)
- 산술/논리 장치 (ALU, Arithmetic/Logic Unit): 수학적 계산과 논리적 비교를 수행하는 장치
- 중앙 처리 장치 (CPU): 프로그램 명령어를 실행하는 주요 하드웨어
- ALU
- 제어 장치 (Control Unit)
- 레지스터 (Register)
- 멀티프로세서 (Multiprocessors): 여러 개의 프로세서를 사용하여 성능을 향상시킨 시스템
- 그래픽 처리 장치 (GPU): 대규모 병렬 계산을 수행하는 하드웨어, 주로 그래픽 처리에 사용되지만 AI 계산에도 활용됨
- SoC (System on a Chip): 하나의 칩에 여러 기능을 집약시킨 시스템, 스마트폰 등에서 사용됨
프로세서의 진화
- 폰 노이만 건축 (Von Neumann Architecture):
- 개념: 1945년 폰 노이만이 제안한 컴퓨터 아키텍처
- 특징: 데이터와 명령어가 같은 메모리에 저장됨. 명령어를 가져와서 실행하는 구조
- 문제점: 명령어와 데이터가 동일한 버스를 사용하기 때문에, 명령어 가져오기와 데이터 처리 작업이 동시에 발생할 수 없다는 "폰 노이만 보틀넥" 문제 발생
- AI 애플리케이션의 당면 과제:
- 폰 노이만 보틀넥: 데이터 전송 속도가 성능에 큰 제약을 준다는 문제
- 새로운 패러다임: 뉴로모픽 건축(Neuromorphic Architecture) - 인간 뇌의 구조와 동작을 모방한 컴퓨터 아키텍처로, 더 빠르고 효율적인 데이터 처리가 가능
메모리
- 휘발성(volatile) 메모리: 전원이 꺼지면 지워짐
- 정적 램(SRAM)→ 캐시셀이 고속(~2nsec 액세스 시간)을 나타내며, 새로 고침 필요 X
- 저밀도(트랜지스터/비트 6개), 고가
- 동적 램(DRAM) → 메인 메모리SRAM보다 느림(액세스 시간 ~ 15nsec), 동적 새로 고침 필요
- 고밀도(트랜지스터/비트 1개)
- 비휘발성(non-volatile) 메모리: 전원이 꺼져도 지워지지 않음.
- = 플래시 메모리(Flash memory)
- 비대칭적인 읽고 쓰기: 읽기 속도(
20us) < 쓰기 속도(200us) - 인플레이스 업데이트 불가: 페이지는 해당 페이지가 속한 전체 블록을 지운 후에만 작성 가능
- 내구성 제한: 블록 100,000번 이상 사용 불가
- 비대칭적인 읽고 쓰기: 읽기 속도(
- Hard Disk Drive(HDD)
- 자기 저장 매체
- Solid State Disk (SSD)
- 보조 기억 장치, 플래시 변환 계층(FTL)
- 속도 비교
- = 플래시 메모리(Flash memory)
프로세서 레지스터
- 범용 목적 레지스터
- 레지스터 사용 최적화 → 메모리 참조 최소화
- 특수 목적 레지스터
- 프로그램 카운터(=PC)
- 반입할(fetched) 명령의 주소 포함
- 명령어 레지스터(=IR)
가장 최근에 반입한 명령 포함
- 프로그램 상태 단어(=PSW)ex. 상태 코드, 인터럽트 마스크, 권한 수준 등
- 상태 코드(Condition code)(OF: 오버플로 플래그, ZF: 제로 플래그)
- 최신 산술 또는 논리 연산에 의해 자동으로 업데이트
- CPU의 현재 상태 포함(플래그 집합)
- 메모리 주소 레지스터(=MAR)
- 입출력을 위해 메모리에서 반입할 현재 명령의 주소 보유
- 메모리 버퍼 레지스터(=MBR, MDR)
- MAR에 보관된 주소에서 찾은 내용을 보관
명령어 집합 구조 (ISA)
소프트웨어와 하드웨어 사이의 인터페이스 정의
기계 상태 = 레지스터 + 메모리
ex. x86, x86-64, IA64, ARM
- 참고:
- 명령어 형식
- 연산코드(Opcode)
- 수행할 작업 지정 ex. 4비트 → 16가지 명령어 표현 가능
- 피연산자(Operands)
- 입력/출력 데이터 및 해당 주소 지정
- 명령어 반입(Instruction Fetch)
- 프로세서: 메모리에서 명령 반입(fetch)
- 프로그램 카운터(PC): 다음에 반입할 명령의 주소 유지
- 반입한 명령이 명령어 레지스터(IR)에 로드
- 프로그램: 처리기에 의해 수행, 메모리에 저장된 명령어들의 집합
- 명령어 사이클
-
- 메모리에서 명령어 반입
- 명령어 해석
- 명령어 수행(필요하다면 다른 연산코드 가져오기)
- 결과 저장
- 다음 과정으로 넘어가서 반복명령어 작업 범주
-
- 프로그램 수행 예시
- PC에 첫 번째 명령어의 주소인 300 들어있음.
- IR 내 첫 번째 4비트는 메모리에 저장된 값이 AC에 적재될 것을 나타낸다. 나머지 12비트(3개의 16진수)는 그 주소 940을 명시한다.
- 다음 명령어(5941)가 주소 301로부터 반입됨. PC 증가
- AC의 이전 내용 + 주소 941의 내용 ⇒ 더한 결과가 AC에 저장됨.
- 다음 명령어(2941)가 주소 302로부터 반입됨. PC 증가
- AC의 내용이 주소 941에 저장됨.
'CS > OS' 카테고리의 다른 글
[운영체제] 메모리 (0) | 2025.01.28 |
---|---|
[운영체제] virtual box에서 ubuntu 설치 및 터미널 명령어 실행하기 (0) | 2023.07.09 |
운영체제 - 생산자 소비자 문제 semaphore을 활용하여 해결하기 (0) | 2023.05.31 |
가상머신에서 우분투 설치하는 법 (0) | 2023.05.26 |
[운영체제] 인터럽트 (0) | 2023.05.20 |