230111(수)
🎄 성장일지 3.1
책 행복한 이기주의자(웨인 다이어)
의 내용에 자극받아 시작하는 소박한 성장기록
살아있는 꽃과 죽은 꽃은 어떻게 구별하는가?<br/> 성장하고 있는 것이 살아 있는 것이다.<br/> 생명의 유일한 증거는 성장이다!
🌳 키워드 (1.0)<br/> 최대한 간단하게 정리, 추후에 보면서 스스로 설명<br/> 🍉 경험 위주로 (2.0)<br/> 단순 정보를 전달하기보다 무엇을 배웠고 어떻게 해결했는지 짧고 간단하게 작성<br/> ❄️ 정해진 템플릿에 맞춰서 (3.0)<br/> 키워드, 경험 모두 좋다. 다만 매일 작성하기로 마음 먹은만큼 핵심만 간결하게 정리할 수 있게 템플릿을 작성 (3.1) 230102부터 시작되는 학습에 관한 내용 추가
🔑 오늘의 키워드
컴퓨터 구조
- 중앙처리장치(CPU), 기억장치(RAM; Memory), 기타 입출력장치(I/O)로 구성되어있다. 각 장치는 시스템 버스로 연결되어있다.
CPU
- 중앙처리장치. 컴퓨터 시스템을 통제하고 프로그램의 연산을 실행 및 처리한다.
- 제어장치(CU), 연산장치(ALU), 레지스터 그리고 이 3개를 연결해주는 버스(회선)로 구성된다.
CPU 작동 순서: Memory에 저장된 프로그램(명령어)을 차례대로 fetch해서(가져와서) 해당 명령어를 decode하여(분류하여) execute한다.(실행한다.)<br/> dump: 컴퓨터 프로그램이 특정 시점에 작업 중이던 메모리 상태를 기록한 것으로, 보통 비정상적으로 종료됐을 때 만들어진다. 즉, 비정상적인 종료가 발생하는 경우 커널에서 해당 프로세스와 관련된메모리 상태를 기록한 파일이다.
제어장치(CU)
레지스터 사이의 데이터 전송을 감시하고 ALU(연산장치)의 동작을 지시한다.<br/> 적절한 순서로 명령을 꺼내고, 각 명령을 해석하여 산술논리 연산 장치나 기타 부분으로 적절한 신호를 보낸다.
- 프로그램 카운터(Program Counter): 다음에 수행할 명령어의 주소를 기억하는 레지스터
- 명령 해독기(Instruction Decoder): 수행해야할 명령어를 해석하여 부호기로 전달하는 회로
- 부호기(Encoder): 전송된 명령어를 제어, 필요한 신호로 변환하는 회로
- 명령 레지스터(Instruction Register; IR): 현재 수행 중인 명령어를 기억하는 레지스터
- 주소 해독기(Address Decoder): IR로부터 받은 주소를 해석하는 회로
- 메모리 주소 레지스터(Memory Address Register; MAR): 주소를 기억하는 레지스터
- 메모리 버퍼 레지스터(Memory Buffer Register; MBR): 내용(자료)를 기억하는 레지스터
연산장치(ALU)
명령어를 실행하기 위한 연산을 수행하는 장치<br/> 연산에 필요한 자료를 입력받아 더하기, 빼기, AND, OR 등의 실제적인 연산을 처리한다.
- 가산기: 2진수 덧셈을 수행하는 회로
- 보수기: 입력된 값을 보수로 변환하여 뺄셈을 수행하는 회로
- 누산기: 중간 연산 결과를 일시적으로 기억하는 레지스터
- 데이터 레지스터: 연산한 데이터를 기억하는 레지스터
레지스터
- CPU의 요청을 처리하는 데이터의 임시공간.(CPU에서 사용하는
변수
라고 생각하자.) - 공간 자체가 작고 가격은 비싸지만, CPU에 직접 연결되어 있어 연산 속도가 매우 빠르다.(RAM보다 훨씬 더 빠르다.)
- CPU는 자체적으로 데이터를 저장할 수 없다.
- 그러므로 레지스터를 이용하여 연산처리와 번지지정을 한다.
참고 자료
📝 요약 및 하루 간단 회고
CPU에 대한 좀더 구체적인 개념을 이해할 수 있는 하루였다. 이 개념을 바탕으로 정말 정말 아주 간단하지만, CPU가 명령어를 처리하는 과정을 구현해보았다. 솔직히 자바스크립트 언어로 CPU의 복잡한 과정을 구현하는 건 쉽지 않은 일이다. 허나, 이렇게 실제로 존재하는 CPU 하드웨어의 과정을 내 생각을 갖고 코드로 구현해보는 경험은 정말정말정말 의미있고 도움이 되는 것 같다. 사실 그동안 프로그래밍 공부를 하면서 제일 걱정되고 자신없던 게, 실제하는 무언가를 코드로 구현하는 일이었는데, 점차 자신이 생기고 있어서 계속 더 구현해보고 싶은 욕심이 생긴다. 앞으로도 이렇게 스스로 동기를 부여하고 찾으면서 공부해 나아가자. :)
undefined