본문 바로가기

CONCEPT/Computer Architecture18

[컴퓨터구조] 명령어 사이클과 인터럽트 프로그램 속 명령어들은 일정한 주기로 반복되며 실행되는데 이 주기를 "명령어 사이클" 이라고함. 인출 사이클: 메모리에서 CPU로 데이터를 가지고 오는 것.실행 사이클: CPU에서 실행하는 것. CPU로 명령어를 가지고 와도 바로 실행이 불가능한 경우도 있다. 인터럽트(interrupt): CPU의 정해진 흐름을 끊어버리는 현상.- 'CPU가 꼭 주목해야 할때', 'CPU가 우선 처리해야 할 다른 작업이 생겼을 때' 발생ex) cpu가 접근하고자 하는 메모리에 접속했을때 원하는 데이터가 없는 현상, 디버깅을 하는 현상, 실행할 수 없는 명령어 1) 알림과 같은 인터럽트: 입출력 작업 도중에도 효율적으로 명령어를 처리하기 위해 하드웨어 인터럽트 사용 1) 인터럽트 요청 신호: CPU의 작업을 방해하는 인.. 2025. 2. 18.
[컴퓨터구조] 레지스터 레지스터: CPU 내부의 작은 임시 저장장치  -> row레벨 개발자(시스템 개발자, 임베디드 개발자)는 레지스터에 있는 값을 관찰하는 경우 많음.  CPU 내부에는 다양한 레지스터들이 있고, 각기 다른 역할을 한다.* CPU 종류마다 레지스터 종류와 갯수도 다름.  (공통 8가지에 대해 학습할 예정) 1. 프로그램 카운터: 메모리에서 가져올 명령어의 주소 (메모리에서 읽어 들일 명령어의 주소): instruction pointer(명령어 포인터)라고 부르는 CPU도 있음. 2. 명령어 레지스터: 해석할 명령어 (방금 메모리에서 읽어 들인 명령어)   3. 메모리 주소 레지스터: 메모리의 주소   4. 메모리 버퍼 레지스터: 메모리와 주고받을 값(데이터와 명령어)   5. 플래그 레지스터: 연산 결과 또.. 2025. 2. 17.
[컴퓨터구조] ALU와 제어장치 ALU: 계산하는 장치 1) 계산을 하기 위해서는 피연산자와 수행할 연산이 필요2) 피연산자는 레지스터로 부터, 제어신호는 제어장치로부터 받아들임3) 레지스터에는 결과값(숫자,문자,주소 등)이 저장됨.     (why? CPU가 레지스터에 접속하는게 CPU가 메모리에 접속하는 것보다 빠르기때문) 4) 플래그(연산 결과에 대한 부가 정보)를 플래그 레지스터에 저장함.      : 연산 결과가 결과를 담을 레지스터에 비해 크다면 플래그 레지스터에 담김. = "오버플로우가 났다" 라고 표현함.제어장치: 제어 신호를 발생시키고 명령어를 해석하는 장치 2025. 2. 16.
[컴퓨터구조] C언어의 컴파일과정 2025. 2. 16.
[컴퓨터구조] 소스코드와 명령어 고급언어: 개발자가 이해하기 쉽게 만든 언어  ex) C, C++, JAVA저급언어: 컴퓨터가 이해하고 실행하는 언어  ex) 기계어, 어셈블리어 기계어: 0과 1로 이루어진 명령어로 구성된 저급언어 어셈블리어: 0과 1로 이루어진 기계어를 읽기 편한 형태로 번역한 저급 언어인터프리터 언어: 인터프리터에 의해 한 줄씩 실행, 소스코드 전체가 저급 언어로 변환되기까지 기다릴 필요 없음.Compiler Explorer Compiler Explorer godbolt.org명령어(Instruction): 연산코드와 오퍼랜드로 구성.-> 메모리(RAM)에 저장되어 있다가 CPU 내부의 명령어 레지스터(IR, Instruction Register)로 불러와서 실행됨. 연산코드(Opcode): 수행할 연산오퍼랜드(O.. 2025. 2. 15.
[컴퓨터구조] 0과 1로 숫자와 문자를 표현하는 방법 비트 (bit)- n 비트로 2^n가지의 정보 표현 가능   ex)  2비트 -> 4가지 정보 표현 (2^2)          3비트 -> 8가지 정보 표현 (2^3)- 프로그램은 수많은 비트로 이루어져 있음- 비트보다 더 큰 단위를 주로 사용    ex) 바이트, 킬로바이트, 메가바이트, 기가바이트, 테라바이트 등워드 (word)- CPU가 한 번에 처리할 수 있는 정보의 크기 단위- 하프 워드(half word): 워드의 절반 크기- 풀 워드(full word): 워드 크기- 더블 워드(double word): 워드의 두 배 크기이진법 (binary)- 0과 1로 수를 표현하는 방법- 숫자가 1을 넘어가는 시점에 자리올림- 우리가 일상적으로 사용하는 진법은 숫자가 9를 넘어갈 때 자리올림하는 십진법(.. 2025. 2. 15.
[컴퓨터구조] 컴퓨터 구조의 큰 그림 강의: 개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제 | 학습 페이지 컴퓨터 구조의 큰 그림 | 개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제컴퓨터 구조의 큰 그림www.inflearn.com   세상에 존재하는 다양한 종류의 컴퓨터: 작은 컴퓨터(라즈베리파이), 스마트폰, 노트북, 서버 컴퓨터  - 컴퓨터가 이해하는 정보: 데이터(명령어의 재료), 명령어(컴퓨터를 실질적으로 움직이는 정보)   ex) 1과 2를 더하라 ==> 1, 2 (데이터) / 더하라 (명령어) - 컴퓨터의 네 가지 핵심 부품 (메인보드를 통해 연결)  1) CPU  2) 메모리(메인메모리=주기억장치=RAM)   3) 보조기억장치  4) 입출력장치메모리: 프로세스(현재 실행되는 프로그램)의.. 2025. 2. 14.
[컴퓨터구조] 컴퓨터 구조를 알아야 하는 이유 인프런 강의: 향로의 인프런 대학교 CS 전공 과정 (컴퓨터구조 / 운영체제 / 알고리즘 / 자료구조 / 네트워크 / 데이터베이스) 로드맵 - 인프런 향로의 인프런 대학교 CS 전공 과정 (컴퓨터구조 / 운영체제 / 알고리즘 / 자료구조 / 네트워크 /운영체제, DBMS/RDBMS 스킬을 학습할 수 있는 로드맵을 인프런에서 만나보세요.www.inflearn.com 수업자료: CSnote CSnote csnote.net * 개발자가 필요한 이유 => 문제 해결: 컴퓨터를 미지의 대상이 아니라 분석의 대상으로 바라봐야함. 이를 위해 컴퓨터 구조를 학습해야 함. * 컴퓨터 구조를 학습하면 얻을 수 있는 것: 문법에 맞는 소스 코드를 컴퓨터에 입력만 하는 개발자가 아닌 컴퓨터를 내려다보며 문제를 해결할 수 있는.. 2025. 2. 14.