![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fmgzic%2FbtsD7nQkvqs%2FzDG87IuJb7fKUzkf3FhFn0%2Fimg.png)
본 카테고리는 "혼자 공부하는 컴퓨터구조 + 운영체제 (강민철 저)" 책과 강의를 기반으로 작성하였습니다. CPU 속도를 빠르게 하기 위해선 CPU가 쉬는 시간 없이 명령어를 처리하는 것이 매우 중요하다. 이를 쉽게 구현할 수 있는 방법이 바로 명령어 파이프 라인이다. 명령어 파이프 라인 하나의 명령어가 처리되는 과정을 비슷한 시간 간격으로 나누면 다음과 같이 4가지로 나눌 수 있다. 명령어 인출 (Instruction Fetch) 명령어 해석 (Instruction Decode) 명령어 실행 (Execute Instruction) 결과 저장 (Write Back) CPU는 같은 단계가 겹치지만 않는다면 CPU는 각 단계를 동시에 실행할 수 있다! 즉 병렬 처리가 가능하다. 파이프라인은 CPU의 처리 과..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsVTqC%2FbtsD5wfvUJc%2F90PaWkq3w6dM3B7bElqHeK%2Fimg.png)
✓ 문제 18352번: 특정 거리의 도시 찾기 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개 www.acmicpc.net 그래프들의 단방향 정보가 주어지고 출발 도시로부터 최단 거리가 X인 다른 정점들을 찾는 문제이다. 단순히 거리가 X인 것이 아니라 최단거리여야 한다. ✓ 풀이 처음에는 DFS탐색을 이용하여 dpeth가 X일 때를 찾았다. 하지만 문제는 최단거리를 구해야 된다는 점이었다. 최단거리를 갱신해주기 위해서는 결국 모든 탐색을 다 해줬어야 했다. 비효율적인 것 같아서 더 효율적인 방법을 찾았..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEQUad%2FbtsEaYvoNQf%2FtxILYO6SHTn477JKNoGPkK%2Fimg.png)
본 카테고리는 "혼자 공부하는 컴퓨터구조 + 운영체제 (강민철 저)" 책과 강의를 기반으로 작성하였습니다. 🐳 CPU를 어떻게 빠르게 만들까? 방법 1. 클럭 신호를 더 빠르게 먼저 클럭을 더 빠르게 조정하는 방법이 있다. 컴퓨터 부품들은 '클럭 신호'에 맞춰 일사불란하게 움직이다. 일반적으로 클럭 속도를 높일 수록 CPU도 빠르게 동작 한다. 하지만 클럭 수를 높이면 그 만큼 발열이 심해지는 문제가 있다. 참고로 요즘 i7 CPU의 클럭수는 평균 2.5GHz, 최고 4GHz이다. 약 1초에 2.5억번의 명령어 사이클을 실행한다는 것이다. Hz는 초당 실행하는 명령어 사이클의 수이다. 방법 2. 멀티 코어, 멀티 스레드 다른 방법으로는 코어의 수와, 스레드의 수를 늘리는 것이다. 코어와 스레드에 대해 알..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdBuDhR%2FbtsD8w6oMvq%2F63WJkBkvfsYNIjxsk28i5k%2Fimg.png)
본 카테고리는 "혼자 공부하는 컴퓨터구조 + 운영체제 (강민철 저)" 책과 강의를 기반으로 작성하였습니다. 🐳 명령어 사이클 CPU는 정해진 흐름대로 명령어를 처리한다. 이러한 흐름을 명령어 사이클이라고 한다. 명령어 사이클은 2가지 동작으로 이루어진다. 인출 사이클과 실행 사이클이다. ▶︎ 인출 사이클 인출 사이클은 메모리로부터 CPU로 명령어를 가져오는 과정이다. 인출 사이클의 자세한 과정은 다음과 같다. PC안에 있는 주소를 MAR(Memory Ardderss Resister)로 보낸다. CPU는 MAR가 가리키는 주소의 메모리에 접근하여 명령어를 가져온다. 가져온 명령어는 MBR(Memory Buffer Resister)을 경유해서 IR에 저장된다. 다음 명령어를 실행하기 위해 PC의 값을 1 증..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcu3j8U%2FbtsD5xxAN8Y%2F2oAZwCi4RQowsGCiEumUR1%2Fimg.png)
본 카테고리는 "혼자 공부하는 컴퓨터구조 + 운영체제 (강민철 저)" 책과 강의를 기반으로 작성하였습니다. 레지스터의 역할 레지스터는 CPU 내부에 있는 작은 임시저장 장치로 컴퓨터가 실행하는 프로그램 속 명령어와 데이터를 일시적으로 저장하고 전달한다. 레지스터는 컴퓨터 프로세서 내에서 자료를 보관하는 아주 빠른 기억장소이며, 메모리 계층의 최상위에 위차한다. 속도가 가장 빠른 만큼 비싸기 때문에 속도 측면에서 중요할 때와 꼭 사용해야되는 값들이 저장된다. 이렇게 빠르고 비싼 레지스터는 다양한 종류가 있고 각기 다른 역할을 가진다. CPU마다 사용하는 레지스터의 개수나 종류들은 다르지만, 공통적으로 사용하는 레지스터들이 있다. 이번 포스팅에서 공통적으로 사용하는 주요 레지스터의 종류와 역할에 대해 알아..