본문 바로가기

CS/컴퓨터구조

[혼공컴운] 3주차 RAM, 보조기억장치, 입출력장치🐥

6. 메모리와 캐시 메모리

 

-01 RAM의 특성과 종류

 

RAM- 휘발성 저장장치

보조기억장치 - 비휘발성 저장장치

 

RAM 용량과 성능 상관관계

용량이 작으면, 보조기억장치에서 필요한 프로그램을 계속 가져와서 실행해야함 -> 속도 ↓

용량이 클 수록 많은 프로그램들을 동시에 실행하는데 유리 = 도서실의 큰 책상

 

DRAM - Dynamic RAM 저장된 데이터가 동적으로 사라지는 RAM

그렇기 때문에 주기적으로 재활성화 해야함

우리가 주로 사용하는 RAM

소비전력 낮고 저렴, 집적도 높아서 대용량 설계 용이

 

SRAM - Static RAM 전원이 연결되어 있다면 정적인(사라지지 않는) RAM

캐시 메모리에 사용됨 집적도 낮음.

 

SDRAM - DRAM의 발전된 형태 클럭 신호와 동기화됨

한번에 한개 데이터

 

DDR SDRAM - Double Data Rate SDRAM 대역폭(=데이터를 주고 받는 길의 너비)이 넓음

                      = SDR SDRAM * 2  

                        DDR2 SDRAM = SDR SDRAM * 2^2  

                        DDR4 SDRAM = SDR SDRAM * 2^3  

 

+ p.185 3번 문제

 

다음 설명을 읽고 SRAM에 대한 설명인지 DRAM에 대한 설명인지 쓰세요.


보기)   SRAM, DRAM

• 주로 캐시 메모리로 활용됩니다. (  SRAM  )
• 주로 주기억장치로 활용됩니다.  (  DRAM  )
• 대용량화하기 유리합니다.            DRAM  )
• 집적도가 상대적으로 낮습니다.    SRAM  )

 

 

-02 메모리의 주소 공간-물리 주소와 논리 주소

 

메모리에 저장된 값들은 변화가 크기 때문

1) 논리 주소
CPU와 실행 중인 프로그램 입장에서 바라본 주소
실행중인 프로그램 각각에게 부여하는 주소(각 프로그램은 0번부터 시작)

2) 물리 주소
메모리 입장에서 바라본 주소
정보가 실제 저장된 하드웨어상의 주소
겹치는 주소 번지가 없음

Q : 각의 주소 간의 변환 방법은?
A : 논리주소 -> 물리주소 과정이 필요
     MMU(메모리 관리 장치) 하드웨어에 의해 변환
     CPU 논리주소-> MMU 물리주소-> 메모리
     물리주소 = 논리 주소(얼마나 떨어져있는지) + 베이스 레지스터 값(프로그램의 시작주소) 


할당되지 않은 번지 수의 명령은 실행할 수 없음 - 인터럽트(트랩) 발생 : 공간 침범

다른 프로그램의 영역을 침범하기 때문



한계 레지스터
- 프로그램 영역을 침범할 수 있는 명령어 실행을 차단
- 베이스 레지스터 값 <= 프로그램의 물리 주소 범위 < 베이스레지스터 + 한계 레지스터 값

 

 

-03 캐시메모리

 

알아두어야할 전제 : CPU가 메모리에 접근하는 시간은 연산 속도보다 느리다.

# 저장 장치 계층 구조(memory hierarchy)
- 가까운 저장 장치는 빠르고 멀리 있는 저장 장치는 느리다.
- 속도가 빠른 저장 장치는 저장 용량이 작고 가격이 비싸다.


캐시메모리 : SRAM 기반 / cpu 연산속도 메모리 접근 속도 차이를 줄이기 위해 탄생

                   == 편의점
       메모리 == 대형마트 
    

+ p.205 1번 문제

 

다음 보기에 있는 저장 장치들로 저장 장치 계층 구조 도식도를 채우세요.


보기 ) 메모리, 보조기억장치, 캐시 메모리, 레지스터

 

7. 보조기억장치

-01 다양한 보조기억장치

 

보조기억장치 : 휘발성을 가지고 있는 메모리의 단점을 보완하기 위해

하드디스크 : 자기적인 방식으로 데이터 저장

플래터 : N극 S극 자기적인 물질을 읽는 장치

데이터를 많이 저장하기 위해 여러개의 플래터 + 양면 사용

스핀들 : 플래터를 회전시키기 위해 존재

RPM : 분당 회전수

 

8. 입출력장치

 

-01 장치 컨트롤러와 장치 드라이버

 

입출력장치 : 외부와 정보를 주고 받는 모든 장치들

종류가 다양 -> 속도, 정보 전송 방식 등 다양  -> 정보 주고 받는 방식 규격화하기 어려움

CPU에 비해 정보 주고 받는 전송률 낮음

장치 컨트롤러 : 하드웨어의 일종으로 번역가 역할을 함

 

데이터 버퍼 : 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼라는 임시 저장공간에 저장하여 전송률을 비슷하게 맞추는 방법
한번에 많은 데이터 받았다가 조금씩 전송하거나 / 조금씩 데이터 모아놨다가 많이 보내주는

버스 <-> 장치 컨트롤러(데이터/상태/제어 레지스터) <-> 입출력장치

데이터 레지스터 : RAM으로 사용하기도 / 버퍼역할
상태 레지스터 : 상태 정보 저장(오류 여부, 작업 준비/완료 여부)

* 장치 드라이버 : 장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 하는 프로그램
드라이버가 없으면 장치 사용할 수 없음 - 어떻게 제어하고 동작하는지 (컴퓨터가==운영체제가)모르기 때문에

-02 다양한 입출력 방법

 

1) 프로그램 입출력 
명령어로 입출력장치를 제어하는 방법 / 장치 컨트롤러와 상호작용하는 방법

2) 인터럽트 기반 입출력

3) DMA 입출력

 

 

 

 

 

모든 사진의 출처 : 혼자 공부하는 컴퓨터구조 + 운영체제 교재

'CS > 컴퓨터구조' 카테고리의 다른 글

[혼공컴운] 2주차_CPU🐣  (0) 2024.01.14
[혼공컴운] 1주차_컴퓨터 구조 시작하기🥚  (0) 2024.01.07