기술 창고/CS 지식(15)
-
[컴퓨터 구조] 메모리의 주소 공간
CPU와 실행 중인 프로그램은 메모리 몇 번지에 무엇이 저장되어 있는지 전부 알지 못한다. 메모리에 저장된 값들은 시시각각 변하기 때문이다. 새롭게 실행되는 프로그램은 새롭게 메모리에 적재되며, 실행이 끝난 프로그램은 메모리에서 삭제, 같은 프로그램을 실행하더라도 실행할 때마다 적재되는 주소는 달라진다. 물리주소 메모리 입장에서 바라본 주소 말 그대로 정보가 실제로 저장된 하드웨어 상의 주소 논리주소 CPU와 실행 중인 프로그램 입장에서 바라본 주소 실행 중인 프로그램 각각에게 부여된 0번지부터 시작하는 주소 논리주소는 각 프로그램마다 공통적인 0번지부터 N번지까지 주소를 할당하는 것이다. 그러므로 0번지에 여러 프로그램이 주소를 할당받아 겹칠 수 있다. 물리주소는 각 프로그램이 0번지부터 일정 번지까지..
2023.03.21 -
[컴퓨터 구조] RAM의 특성과 종류
RAM의 특징 주기억장치, 메모리라고도 부른다. CPU에서 실행할 대상들을 저장한다. 휘발성이기 때문에 전원이 꺼지면 저장된 데이터는 사라진다. RAM의 용량과 성능 RAM의 크기를 초과하는 프로그램을 CPU에서 실행하기를 원한다고 했을 때 정상적으로 실행되지 않을 수 있다. 또한, 새로운 요청이 들어올 때마다 보조기억장치까지 접근해서 프로그램을 RAM으로 가져온 후 CPU로 불러와서 실행해야한다. RAM의 크기가 매우 크고 보조기억장치에 존재하는 프로그램들을 모두 메모리에 넣을 수 있을 만큼 크다면 CPU에서 원하는 프로그램을 필요할 때마다 바로바로 RAM에서 읽어와서 실행할 수 있다. RAM의 종류 DRAM (Dynamic RAM) 저장된 데이터가 동적으로 사라지는 RAM 데이터 소멸을 막기 위해 주..
2023.03.21 -
[컴퓨터 구조] 명령어 집합 구조, CISC와 RISC
각 명령어는 생김새, 연산, 주소지정방식이 다 다르다. 명령어 집합(구조) CPU가 이해할 수 있는 명령어들의 모음 명령어 집합이 다르기 때문에 같은 소스 코드를 컴파일 하더라도 다른 어셈블리어로 컴파일 된다. CPU의 언어라고 볼 수 있다. 명령어가 달라지면 많은 것들이 달라진다. 명령어 해석 방식 레지스터의 종류와 개수 파이프라이닝의 용이성 등등 CISC 복잡한 명령어 집합을 활용하는 컴퓨터(CPU) x86, x86-64는 CISC 기반 명령어 집합 구조이다. 명령어의 형태와 크기가 다양한 가변 길이 명령어를 활용한다. 다양하고 강력한 명령어를 활용한다. 상대적으로 적은 수의 명령어로도 프로그램을 실행할 수 있다. 하지만 명령어 파이프라이닝에 불리하다. 파이프라이닝은 명령어의 실행 주기(형태)가 일정..
2023.03.21 -
[컴퓨터 구조] 명령어 병렬 처리 기법
명령어 파이프라인 명령어가 처리되는 과정을 비슷한 시간 간격으로 나누면 명령어 인출 명령어 해석 명령어 실행 결과 저장 여러 명령어가 수행될 때 각 명령어의 위와 같은 과정들이 겹치지 않는다면 CPU는 각 명령어 단계를 동시에 실행할 수 있다고 본다. 이처럼 겹치지않게 여려 명령어를 병렬적으로 수행하는 것을 명령어 파이프라인 이라고 한다. 명령어 파이프라인을 사용하지 않는다면? 한 명령어의 모든 단계가 끝날 때까지 기다리고 그 다음 명령어가 수행되므로 CPU의 속도가 느리다. 명령어 파이프라인 위험 명령어 파이프라인이 성능 향상에 실패하는 경우 1. 데이터 위험 : 명령어 간의 의존성에 의해 발생되는 위험 모든 명령어를 동시에 처리할 수는 없다. (이전 명령어를 완전히 수행해야지만 비로소 실행할 수 있는..
2023.03.17 -
[컴퓨터 구조] 빠른 CPU를 위한 설계 기법
CPU 속도를 늘리기 위한 방법에는 여러가지가 있지만 기본적으로 클럭 속도를 높이는 방법, 코어 수를 늘리는 방법(멀티 코어...), 스레드 수를 늘리는 방법(멀티 스레드...)이 있다. 클럭 컴퓨터의 모든 부품들이 움직일 수 있게 하는 동작 단위 클럭 속도 : Hz (헤르츠) 이론적으로 클럭 속도를 높이면 CPU 속도를 빠르게 높일 수 있다. 클럭 속도를 높이면 빠르긴 하지만 필요 이상으로 높이면 발열이 심각해진다. 코어 명령어를 실행하는 부품 CPU 내에서 명령어를 실행하는 부품으로 CPU(프로세스) 내에서 여러 개 존재할 수 있는 부품 기본적으로 CPU가 명령어를 해석하고 실행하는 부품이라고 하고 이전에는 이 CPU 하나 만으로 운영이 가능하였다. 하지만 오늘날에 와서는 이 ALU, 제어 장치, 레..
2023.03.16 -
[컴퓨터 구조] 명령어 사이클과 인터럽트
CPU는 정해진 주기대로 명령을 수행하는데 그것을 명령어 사이클이라고 한다. 이러한 명령어 사이클의 흐름을 끊는 행위를 인터럽트라고 한다. 명령어 사이클 정해진 주기대로 명령을 수행 인출 사이클 : 가장 먼저 CPU로 갖고오는 사이클 주기 실행 사이클 : 인출 사이클을 통해 가지고온 명령을 실행하는 사이클 간접 사이클 : 인출 한 다음에 메모리 접근이 더 필요한 경우에 거치는 간접 사이클 예) 간접 주소 지정 방식, 레지스터 간접 주소 지정 방식 등 인터럽트 정해진 흐름대로 수행되는 사이클의 흐름을 끊는 행위 동기 인터럽트 (Exception, 예외) CPU가 예기치 못한 상황을 맞닥뜨렸을 경우에 발생 비동기 인터럽트 (하드웨어 인터럽트) 주로 입출력장치에 의해 발생되는 알림과 같은 역할을 수행 예) 세..
2023.03.16