우리가 사용하는 컴퓨터가 어떤 방식으로 동작하는지 궁금했던 적이 있나요? 내가 컴퓨터를 켤 때, 프로그램을 실행시킬 때, hardware와 software가 어떻게 서로 상호작용하는지 등 컴퓨터의 동작에 대해 이해하고자 하는 과목이 ...
우리가 code를 작성할 때는 user level에서 이해하기 쉬운 programming language(ex. C, C++, python, java, etc)를 활용합니다. 하지만, CPU와 같은 machine level에서는 우리가 보는 language의 ...
CPU의 register에는 앞선 게시물에서 작성했던 64-bit size의 register 외에도 single bit condition code가 존재합니다. x86-64 architecture에는 다음과 같은 4가지 condition code가 있습니다...
Mechanisms in Procedure 이번에는 process에서 function call을 진행할 때의 mechanism을 설명드리고자 합니다. function call을 진행할 때 해당 function이 있는 address로 단순히 jump를 하게 되면...
Buffer overflow 컴퓨터에 대해서 공부를 하면서 한 번쯤은 buffer overflow라는 말에 대해서 들어본 적이 있을 것입니다. buffer overflow는 out-of-bound array element를 write하는 과정에서 stack에...
이번 글에서는 컴퓨터의 기본적인 memory system, hierarchy에 대해서 살펴보고 그 중 cache 동작의 아주 간단한 원리를 살펴보고자 합니다. Memory Access 우리가 사용하는 컴퓨터는 기본적으로 폰 노이만 아키텍처를 따르고 있기 때문에
이번에는 code optimization에 대해서 다뤄보겠습니다. 대부분의 compiler들은 CPU가 이해할 수 있는 machine code로 변환하기 위해 compile을 진행하는데, 이때 코드 그대로 단순히 변환하기 보다는 optimization을 통해