오랜만에 블로그 글을 써봅니다. 중간에 여러가지 마인드 변화 + 진로 고민끝에 백엔드보다는 로우레벨을 좋아하고, 재미가 있어서 게임서버 개발자를 준비해보기로 했습니다. 목표가 자주 바뀌는 것 같은데 , 지금 제 시기가 그런 시기라고 합리화하면서 쭉 달려보겠습니다. 프로그램 해석과정 소스코드를 작성하고, 프로그램을 만드는 사람을 프로그래머 혹은 개발자라고...

오늘은 현대 CPU의 처리효율을 굉장히 굉장히 높여주면서, 동시에 해결해야할 문제점(?)을 선물로준 파이프라이닝에 대해서 적어볼까 합니다. 파이프라이닝은 2~3편정도에 걸쳐 길게 적으려고 합니다. 머리안에서 자신만의 CPU구조 생각하기 파이프라이닝에 대해서 설명하기 전에, 파이프라이닝이 적용되기 전 CPU의 동작방식과 문제점에 대해서 알아봅시다. CP...
지난 글에는 파이프라이닝에 대한 개념과 문제점이 일어날 수 있는 가능성에 대해서 글을 적었습니다. 오늘은 파이프라이닝의 문제점이 무엇이고 어떻게 해결할 수 있을지에 대해서 적어보겠습니다. > 참고) 설명하는 기준은 InOrder 파이프라이닝을 기준으로 먼저 설명합니다. 현대 CPU는 OutOrder 파이프라이닝이 기본이지만, 발전과정의 순서대로 배우는게 ...
지난 글에서는 어떤 처리기에서든 일어나는 RAW Hazard와 해결법에 대해서 적었습니다. 지금 다루는 내용은* Data Dependency로 인해 일어나는 3가지 Hazard*들 입니다. 남은건 OutofOrder 혹은 Parallel에서 일어나는 WAW와 WAR에 대해서 입니다. 그렇다면 , 먼저 OutofOrder이 뭔지에 대해서 알아봐야합니다. 저...

Hazard의 마지막 Brach Hazard에 대해서 다루고 Pipelining에 대한것은 끝내려고 합니다. 간단하게 복습을 한번 해볼까요 앞에 있던 글들 빠르게 정리해보기 CPU는 원래 순차적으로 일을 처리했다. 즉, 하나의 Task가 끝나고 다음 Task를 실행하는 것으로 개발이 되었음. 하지만, 처리율을 높이기 위해서 하나의 task를 여러개의 ...

디테일한 내용까지하면 2주정도는 파이프라이닝에만 시간을 쓸 거 같아서, 외전격으로 체크해놓고 잠깐 메모리 이야기로 넘어가려고 합니다. 저는 이 짤만큼 메모리를 잘 설명한것을 본적이 없습니다.. 존경스럽습니다. 저장할 수 있다면 다 메모리다. 현대 PC는 CPU와 RAM , GPU 등으로 이루어져 있습니다. 이런 구조를 폰 노이만 구조라고 합니다. 처리...

POCU와 OS공부를 하면서, 지방러로써 상경을 위한 준비를 하다보니 공부는 하는데 블로그를 쓸 시간이 없었습니다 ㅠㅠ 맘 같아선 진짜 집 통째로 옮기고 싶습니다. CA는 듣고 싶었던 강의들은 모두 들었고, OS의 세마포어와 데드락에 대해서 공부하고 있습니다. 앞으로 쓸 글들이 많이 남았기 때문에, 캐시 메모리 빠르게 들어가볼까요! 캐시 메모리는 구조...

이전까지의 내용은 CacheMemory의 기초적인 이론에 대한 내용이었습니다. 캐시의 이론적인 구조와 캐시의 이론적 배경 등을 짚는 글이었습니다. 사실, 가장 중요한건 아래의 문장입니다. >캐시 메모리는 공간 지역성과 시간 지역성(Temporal Locality)를 기반으로 이루어진 시스템 입니다. 이번 글은 CPU 입장에서 캐시를 살펴볼겁니다. CP...

저번 글에서는 캐시가 CPU에서 어떻게 구현이 되고 관리가 되는지 자세히(?) 알아보았습니다. 이번에는 CPU에서 사실 코어는 1개가 아니기 때문에, 여기~저기 코어에서 똑같은 캐시라인을 수정하고 읽고 합니다. (RAM은 1개) 이 말은 결국 데이터의 사본이 생긴다는 것입니다. 여러 코어에서 같은 캐시라인을 들고있는 상황 아래 표정짤을 예시로 들어봅시...

포인터에 대한 것을 하다보니, 가상메모리 시스템에 대한 이야기를 정리해야겠다고 생각이 되어서 요즘 컴구조랑 C언어 정리를 왔다갔다 업로드 하고 있습니다. 사실, 제가 블로그의 글을 바로바로 쓰는게 아니라, Notion에 어느정도 한번 정리를 하고, 나름 누군가가 읽는다는 생각으로 정제해서 블로그에 업로드를 하기 때문에.. Notion에 내용들은 팍팍 쌓...

저번 글은 운영체제와 컴퓨터 구조 전반에 걸쳐 가상메모리 시스템에 대한 개념을 잡은 시간이라면, 이번 글은 더 구체적인(?) 구현체인 윈도우(OS)가 어떤식으로 메모리를 관리하는지 볼겁니다. Application을 만든 경험이 있다면 공감하실 내용인데,* 누구든 이론(계획)은 잘 정립한 후, 시작을 합니다*. 하지만, 구현체인 프로그램들은 제 생각보다 신기...

가상 메모리에 대한 이론적인 배경과 구현(?)에 대한 내용들은 웬만치 다 보았습니다. 그렇다면, 우리가 사실상 활용하게 되는 windows Memory API에 대해서 오늘은 다루어 보도록 합시다. 사실, 여기서 부터는 OS의 내용이라고 하기에는 애매~합니다. 시스템 프로그래밍..?이라고 할까요. 하지만 OS를 만드는것도 결국은 시스템 프로그래밍이기 때문...