[혼자 공부하는] MEM & IOSYSTEM

AIRIMI·2025년 1월 26일
0

혼공컴운

목록 보기
3/7
post-thumbnail


1주차활동 혼공족으로써 열심히 공부해 매머드 커피 교환권을 받았어요! 저는 헤이즐넛을 가장 좋아해서 500원 추가하고 메뉴 바꿔 마셨습니다ㅎㅎ🧋

족장님께서 추가 피드백으로
https://www.youtube.com/watch?v=Btsa_U-f26k&t=601s 위 링크 공유해주셨는데 확실히 전용 책강의가 있으니까 이해도 잘되고 좋은거 같아요! 감사합니다. 🙂

이번이 마지막 컴퓨터구조 부분을 공부하는 주차가 되었는데 그럼 열심히 복습해보겠습니다~!

⚠ 아래 내용은 책 개념 + 제 머릿속 지식 + 인터넷 정보 등이 포함되어있습니다. ⚠
( 📢 수정할 내용이 있다면 알려주세요! )

💾Ch.06 메모리와 캐시 메모리


RAM

메모리 하면 보통 RAM을 생각하면 되는데 이 RAM의 용량과 성능은 다음의 관계에 있습니다.

RAM에 실행할 프로그램과 관련된 명령어나 데이터를 가져오는데 RAM의 용량이 작으면 저장해둘 수 있는 크기가 충분하지 않아 필요한 데이터를 계속 가져와야할 일이 생길 것입니다. 이에 실행시간 또한 길어지겠죠! (하지만 용량이 엄청 크다고 해도 일정 수준에 도달하면 속도가 그에 비례하게 지속적으로 증가하지는 않습니다.)

RAM에는 다음의 종류가 있습니다.

  • DRAM (Dynamic RAM) : 데이터가 동적으로 사라지는(변하는) RAM
  • SRAM (Static RAM) : 데이터가 변하지 않는 RAM
  • SDRAM (Synchronous DRAM) : clock 신호와 동기화된, 발전된 DRAM
  • DDR SDRAM (Double Data Rate SDRAM) : '대역폭(데이터를 주고받는 통로의 너비)을 넓혀 속도를 빠르게 만든 SDRAM'

특히 DRAM과 SRAM의 차이점은 대략 다음과 같습니다!

DRAMSRAM
속도느림빠름
가격저렴비쌈
집적도높음낮음
소비 전력적음높음
사용처주기억장치캐시매모리

** 관련해서 집적도가 뭔지 찾아봤는데

"SRAM은 DRAM의 100배 이상으로 접근 속도가 빠르지만[57] 구조가 복잡하여 공간을 많이 차지하므로 집적도를 높이기 어려워 가격이 비싸고 대용량으로 제작하기가 어렵다. 그래서 빠른 속도가 요구되는 캐시 메모리(Cache Memory)에 주로 사용된다. " RAM - 나무위키

반도체 소자의 집적도(Integration Density)를 높이면 성능을 높일 수 있고( 소자들 사이 신호 전달이 빨라져 처리 속도 향상, 반도체 칩 크기가 작아져 에너지 소비 절감) 이에 집적도는 단위 면적당 반도체 칩 내부에 담긴 소자들의 수를 의미합니다.

+추가적으로)
RAM의 성능과 관련해서 용량 외에 메모리 latency, 메모리 쓰루풋대역폭, 메모리 레벨 병렬 처리(MLP)가 주로 기여한다고 하네요.

Cache memory

Memory hierachy : 메모리 계층구조로, CPU와 가까움을 계층을 나타낸 것! 이에 CPU와 가까울 수록 더 빠르고 저장 용량이 작으며 비싼 특징을 가집니다.

레지스터에 접근하는 속도는 빠르지만 CPU가 메모리에 접근하는 속도는 느린 특징이 있기에 CPU의 속도는 빨라도 메모리 접근 속도가 느리면 성능 향상이 더딜 수밖에 없습니다. 따라서 이에 캐시메모리를 사용합니다!

캐시메모리는 CPU와 메모리 사이에 존재하여 Reg보다 용량이 크고 메모리보다는 속도가 빠른 SRAM기반 저장 장치입니다. 따라서 메모리에서 CPU로 바로 데이터를 가져오는 것 대신에 필요한 데이터를 미리 캐시메모리에 저장해뒀다가 이용하는 체계입니다.
이에 메모리 접근 시간을 줄일 수 있게 됩니다!

추가적으로 L1, L2, L3 캐시가 있는데, 이는 CPU와 가까운 캐시 순으로 L1(CPU와 가장 가까움), L2... Cache라 부릅니다.
만약 데이터가 L1 캐시에 없으면 그 다음으로 L2, L3 캐시를 순차적으로 탐색합니다.
이에 cache hit 개념이 나오는데, 이는 자주 사용될 것으로 예측한 데이터가 실제로 맞아 캐시메모리 내 데이터가 CPU에 활용되는 경우를 hit! 아니면 cache miss 라 합니다. 이에 'cache hit 수 / (hit + miss 수)'의 계산을 통해 캐시 적중률을 나타냅니다. >> 캐시 적중률이 높으면 캐시메모리를 잘 사용하고 있단 것!

자주 사용되는 데이터를 캐시에 올리는 체계는 다음의 참조 지역성의 원리에 따라 이루어집니다.

  • Temporal locality : 최근 접근했던 메모리 공간에 재접근 경향 ex) for문의 i
  • Spatial locality : 접근한 메모리 공간 근처를 접근하려는 경향

& 멀티 코어(CPU) 프로세서에서는 L1,L2 캐시는 코어마다 할당되고 L3 캐시를 여러 코어들이 공유하는 형태로 설계된다고 합니다!

++ 분리형 캐시 (L1캐시의 접근속도를 더 빠르게 하기 위해 명령어만을 저장하는 L1I 캐시와 데이터만을 저장하는 L1D 캐시를 분리하는 경우) 또한 존재합니다.

💽ch.07 보조기억장치

보통의 보조기억장치는 하드디스크(HDD)와 플래시 메모리를 지칭합니다.

  • HDD (하드디스크) : 자기적(magnetic) 방식으로 데이터를 저장
  • Flash memory : 전기적으로 데이터를 read/write 가능한 반도체 기반 저장 장치

HDD

하드디스크는 platter라는 원판을 회전시키는 spindle(가운데 톱니바퀴처럼 생긴)과 그 위에 살짝 떠있는 채로 데이터를 읽고 쓰는 head (head가 총 여러개로 트랙마다 달려있는 경우를 multiple-head disk >> head가 움직일 필요가 없는 다중디스크를 fixed-head disk라 함), 헤드를 이동시키는 disk arm으로 이루어져 있습니다. 이에 platter는 track(원 하나)과 sector(부채꼴의 조각 하나) 단위로 데이터를 저장하며 이 섹터가 HDD의 가장 작은 전송 단위입니다!

platter는 여러 겹으로 쌓일 수 있으며 이 겹겹의 플래터 상에서 같은 track 위치 하나를 모은 논리적 단위가 cylinder입니다.
(platter가 여러겹 쌓인 것에서 첫 platter의 윗면과 아랫면, 두 번째 platter의 윗면과 아랫면...을 사용해 저장함)

Flash memory

USB memory, SD Card, SSD 모두 Flash memory 기반의 보조기억장치이며 이외에도 Flash memory는 보조기억장치로의 사용 외에 ROM 등 여러 전자제품에 내장되어있습니다.

Flash Memory는 주로 NAND Flash Memory로 많은 데이터를 처리할 때 중요한 빠른 read access 시간을 제공합니다.( https://www.simms.co.uk/tech-talk/understanding-nand-flash-technology/ )

FLash memory에는 Cell 단위가 존재합니다.
이는 Flash memroy에서 데이터를 저장하는 단위로, 이 셀이 합쳐지며 MB, GB... 용량의 저장장치가 됩니다. 이에 하나의 Cell에 몇 비트를 저장할 수 있는 지에 다음의 Type으로 나뉩니다.

  • SLC (Single Level Cell) : 한 셀에 1비트
  • MLC (Multiple Level Cell) : 한 셀에 2비트
  • TLC (Triple Level Cell) : 한 셀에 3비트 >> 한 셀로 8(2^3)개의 데이터를 표현가능
  • QLC : 한 셀에 4비트
    💽SLCMLCTLC
    bit per Cell1bit2bit3bit
    용량 대비 가격비쌈보통
    수명보통짧음
    read/write 속도빠름보통느림

++ 셀들이 모일수록 page, block,plane, die 순으로 단위가 표현됩니다. 이에 read/write 작업은 page단위로 적용되지만 삭제는 block 단위로 이루어집니다.

📲ch.08 입출력장치

입출력장치는 장치 컨트롤러(I/O Controller)를 통해 컴퓨터와 연결이 됩니다. 이 장치 컨트롤러는

  • CPU와 입출력장치 간 통신 중계
  • 오류 검출
  • 데이터 버퍼링

위 역할들을 수행하여 서로 다른 입출력장치들이 주고받는 데이터를을 하나로 규격화?하거나 전송률 문제를 해결합니다.

또한 새 장치를 컴퓨터에 연결하기 위해서는 장치 드라이버가 필요합니다. 이는 장치 컨트롤러를 제어하여 컴퓨터와 컨트롤러가 정보를 주고받을 수 있게 합니다.


p. 185의 확인 문제 3번, p. 205의 확인 문제 1번 풀고 인증하기, RAID의 정의와 종류를 간단히 정리해보기

P.185 확인문제3
Q: 다음 설명을 읽고 SRAM에 대한 설명인지 DRAM에 대한 설명인지 쓰세요.

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

P.205 확인문제1
Q: 다음 보기에 있는 저장 장치들로 저장 장치 계층 구조 도식도를 채우세요.
A: 레지스터 > 캐시 메모리 > 메모리 > 보조기억장치

Q: RAID의 정의와 종류 간단히 정리하기

RAID

RAID는 데이터를 한 저장소에 저장하는 것으로부터의 안정성의 문제로 나온 개념으로 여러개의 물리적 보조기억장치를 하나의 논리적인 보조기억장치처럼 사용하는 것입니다.

RAID의 종류는 다양한데 그중에서 RAID 10을 살펴보겠습니다!

RAID 10은 보시다시피 RAID 0과 RAID 1을 이용한 것으로 RAID 0(Stripping)은 데이터를 여러 디스크에 번갈아 분산적으로 저장하여 데이터를 read/write하는 속도를 향상시킵니다. RAID 1(Mirroring)은 기존 데이터를 똑같이 복사해 저장하여 만일의 경우 데이터가 손상되어도 복구가 가능하도록 합니다.

이 외에도 RAID 4와 RAID 5가 있고 이것들은 Parity bit를 추가적으로 복구를 위한 정보로 사용하여 안정성을 높입니다.

ps.
컴퓨터구조를 공부하시는데 영어원문 lecture 책을 찾으시다면 다음을 추천🙃

https://product.kyobobook.co.kr/detail/S000002261883

한국어 교재를 찾으신다면 다음을 추천드립니다. 🙂

https://www.hanbit.co.kr/store/books/look.php?p_code=B9177037040

0개의 댓글

관련 채용 정보