하드웨어(9)
-
메모리 계층 구조와 캐시 & 레지스터에 대하여 – 하드웨어 시리즈 #4
지난번 글에서는 순차회로에 대해 알아봤고, 순차회로를 만들기 위해 필수적인 저장 모듈인 flip-flop과 그것을 동작시키는 clock에 대해 알아봤다. 이번에는 레지스터 파일 (register file)에 대해 알아본다. 일단 레지스터가 무엇인지 알아야 하니까 먼저 메모리 계층 구조에 대해 알아보자: 메모리의 종류로는 위에서부터 아래까지 레지스터 - 캐시 - 주기억장치 - 플래시 - 하드디스크가 있다. 위에서 아래로 갈수록 속도는 느려지는 반면, 용량은 커지고 접근하는데 필요한 전력이 적게 소모된다. 또한 위에 레지스터와 캐시를 보다시피 둘은 CPU에 내장이 되어 있으며, 그 외에는 모두 컴퓨터 안에 다른 장치로 자리 잡는다. 주기억장치는 RAM으로, 플래시를 SSD 정도로, 하드디스크는 흔히 아는 H..
2023.02.19 -
순차회로, 클럭, 플립플롭 - 넌 누구니? – 하드웨어 시리즈 #3
이번에는 순차회로에 대해 알아보자 아래 글에서 조합회로와 순차회로가 무엇이고 어떻게 구별하는지 알아봤다. 조합회로는 뭐고 순차회로는 대체 뭘까 – 하드웨어 시리즈 #1 하드웨어를 배우게 되면 아마도 가장 먼저 배우는 개념들 중 하나가 이 둘이다. 그만큼 중요하다는 것을 좀 더 와닿게 이야기하자면, 이 둘을 기반으로 CPU가 설계된다는 사실이다. 일단 조합회 mountainhiker.tistory.com 위 내용은 기본적으로 알고 있어야 이번 글도 수월하게 이해할 수 있다. 순차회로는 항상 얘기하듯이 현재 입력과 과거 입력에 의해 출력이 결정되는 회로이다. 순차회로는 위 두 입력을 모두 사용하는 로직이기만 하면 되기 때문에, 굳이 순차회로에는 어떤 것이 있는지는 따지지는 않는다. (그냥 과거 입력과 현재 ..
2023.02.15 -
원리부터 설계까지 쉽고 명확한 컴퓨터구조 - RISC-V 중심으로 리뷰
이 책의 저자인 서태원 교수님께서 작년에 우리 학교에 특강을 하셨다. Spectre와 Meltdown 등의 부채널 공격들에 대해서 특강하셨는데, 1학년 때 Layer7 동아리에서 배운 하드웨어 수업이 희미하게 떠올랐다. 그때도 정말 관심 있게 하드웨어를 공부했었는데, 너무 무턱대고 맨땅에 해딩으로 공부해서 그런지 막연하고 누가 좀 커리큘럼을 짜주면 좋겠다는 생각에 하드웨어를 때려쳤다 하지만 하드웨어를 열심히 하는 친구들을 보면서 와 멋있다 생각도 나고 결국에 하드웨어의 유혹에서 빠질 수 없었다 교수님께서 하신 강의가 너무 잘 짜여져 있었고 뭔가 하나의 큰 스토리처럼 느껴져서 설명도 맘에 들었다 그래서 추천해주실 수 있는 책이 있는지 한 번 여쭈어 보았더니 교수님께서 쓰신 책을 추천받았다 일단... 약 2..
2023.02.14 -
아니 그래서 조합회로엔 뭐뭐 있는데? – 하드웨어 시리즈 #2
지난번 글에서 조합회로와 순차회로가 무엇이고 어떻게 구별하는지 알아봤다. 기억이 나지 않거나 아직 못 읽어보신 분들을 위해: 조합회로는 뭐고 순차회로는 대체 뭘까 – 하드웨어 시리즈 #1 하드웨어를 배우게 되면 아마도 가장 먼저 배우는 개념들 중 하나가 이 둘이다. 그만큼 중요하다는 것을 좀 더 와닿게 이야기하자면, 이 둘을 기반으로 CPU가 설계된다는 사실이다. 일단 조합회 mountainhiker.tistory.com 위 내용은 기본적으로 알고 있어야 이번 글도 수월하게 이해할 수 있다. 그래서 지난 글을 복습하자면 조합회로 : 현재 입력에 따라서 즉시 출력 (기억 능력 X) 순차회로 : 현재 + 과거 입력에 따라 출력 자, 그럼 조합회로 중에서 어떤 것들이 있을까? 이런 질문을 할 수 있다. 그래서..
2023.02.13 -
조합회로는 뭐고 순차회로는 대체 뭘까 – 하드웨어 시리즈 #1
하드웨어를 배우게 되면 아마도 가장 먼저 배우는 개념들 중 하나가 이 둘이다. 그만큼 중요하다는 것을 좀 더 와닿게 이야기하자면, 이 둘을 기반으로 CPU가 설계된다는 사실이다. 일단 조합회로와 순차회로는 대충 어디다 써먹는지는 알겠고.. 그래서 뭔데? 조합회로란, 현재 입력에 의해서만 출력이 결정되는 회로이다. 예시를 들어보자면, AND 게이트, OR 게이트 등이 있을 수 있다. 왜일까? 어쨌든 AND 게이트에 신호를 넣으면 바로 출력 Y가 나오기 때문이다. 진리표에서 볼 수 있듯이, 입력 A와 B 신호에 변화가 생기는 순간, 즉 A와 B에 전력을 공급하거나 공급하지 않을 때 Output이 바로 결정이 되어 즉시 출력이 나온다. (물론 회로 자체의 delay를 무시한다면 즉시 나온다고 할 수 있다.) ..
2023.02.12 -
임베디드 구조
UART 핀 찾기 위에 빨간색으로 표시한 부분이 UART 핀으로 보입니다. UART란, 병렬 전송을 직렬로 변환하는 통신 방법입니다. TX: 송신자 핀 RX: 수신자 핀 GND: 그라운드 UART 통신에서는 송신자 측이 TX이고 수신자 측이 RX이므로 위의 포트들 중에서 TX와 RX가 써져 있는 포트를 찾았습니다. 보드에 적혀 있는 것은 특별히 신경 써야 할 사항은 아닌 것 같고... #0BA440 WINBOND 25032JVS10 검색해본 결과 정확히 이 제품은 나오지 않았지만 W25Q32JV라는 제품과 생긴 것도 대충 비슷하고 이름도 비슷해서... (대충 맞겠지 하는 마인드로) 후자에 대해서 알아봅시다. W25Q32JV는 32Mbit (약 4MB) 크기의 NOR 플래시 메모리입니다. 플래시 메모리란,..
2021.04.20 -
CPU의 명령어 처리
중앙처리장치의 개요 중앙처리장치(CPU)는 사람에 비유하면 두뇌에 해당하는 역할을 합니다. 주기억장치에서 데이터를 가져와 해석하고, 실행하고 데이터를 돌려주는 작업을 합니다. 중앙처리장치의 구조 연산장치 제어장치 레지스터 연산장치(ALU)는 산술 연산과 논리 연산을 담당하는 장치입니다. 산술 연산이란, 덧셈, 뺄셈, 곱셈, 나눗셈 등이 있으며, 논리 연산으로는 논리합, 논리곱, 부정 등이 있습니다. 데이터를 레지스터에서 가져와 연산을 수행한 뒤 레지스터에 다시 덮어쓰기 합니다. 제어장치는 지휘자의 역할을 합니다. 주기억장치에서 데이터를 인출해(Fetch) 해독(Decode), 실행(Execute) 그리고 다시 데이터를 되돌려주는 (Write-Back)의 과정을 수행합니다. 즉, 명령어를 순서대로 실행할 ..
2021.04.15 -
컴퓨터의 부팅 과정
컴퓨터를 많은 사람들이 사용하고 있으나 부팅할 때 어떤 일이 이루어지는 지에 대해 아는 사람은 소수입니다. 부팅이란, 컴퓨터 용어로서 컴퓨터를 시작할 때, 자기 자신(컴퓨터)을 구동시킬 프로그램을 컴퓨터 스스로 불러내는 동작. (나무위키) 컴퓨터에 있는 파워 버튼을 누르게 되면 먼저 전류를 조정하는 장치인 파워 서플라이(PSU)에 전기가 들어옵니다. 파워 서플라이는 보통 가정집에서 사용하는 교류(AC)를 컴퓨터가 사용할 수 있는 직류(DC)로 바꿔주는 역할을 담당합니다. 직류란, 곧을 直과 흐를 流, 영어로는 Direct Current이며, 전자가 시간에 따라서 한쪽 방향으로만 흐르고 크기가 일정한 전류입니다. 교류는 주고받을 交와 흐를 流, 영어로는 Alternating Current이며, 시간에 따라..
2021.04.06 -
Flash, ROM, RAM에 대하여
컴퓨터의 뇌라고 할 수 있는 중앙처리장치(CPU)는 데이터를 읽고 쓰는 작업을 주로 합니다. 이를 위해 데이터를 일시적으로 또는 영구적으로 저장할 수 있는 저장장치가 필요합니다. 저장장치의 종류는 크게 세 종류로 나눌 수 있습니다. 첫 번째, 주기억 장치 비유하자면 책상 또는 작업대라 할 수 있고, 클수록 더 많은 서류를 올려놓을 수 있습니다. 두 번째, 보조 기억 장치 수납장에 비유할 수 있으며, 수납장에서 물건을 가져오는데 시간은 좀 걸리지만 많은 물건을 보관할 수 있습니다. 세 번째, 특수 기억 장치 이는 캐시 메모리와 가상 기억 장치로 나뉩니다. 캐시 메모리는 우리가 평소에 간단한 계산을 외우고 있는 구구단에 비유할 수 있고, 가상 기억 장치는 작업대가 작아서 수납장과 작업대를 함께 사용하는 것과..
2021.04.05