본문 바로가기

분류 전체보기63

2023.11.18 - 개발용 미니 PC 구입 이전 부터 보드 개발을 위해 리눅스가 설치된 pc 가 있으면 좋겠다고 생각을 했습니다. 경험상 serial 통신도 윈도우의 putty 나 tera term 보다 리눅스의 minicom 이 몇배나 편하고.. sd 카드 플래시와 같은 기본적인 작업을 하는데에 있어, linux의 기본 유틸리티가 워낙 강력하기 때문에 도저히 윈도우에서 적응하기가 힘들었기 때문입니다 그렇다고 메인 컴퓨터에 멀티 OS 를 깔자니 내키지가 않았는데,, 우연히 요즘 미니 PC 제품들이 꽤 가성비 좋게 나온다는 걸 알게되어 몇몇 제품을 알아본 결과, 아래의 인텔 N100 프로세서가 장착된 제품을 선택하게 되었습니다. N100 프로세서 - 램 16GB - SSD 512GB 제품으로 선택하였고, 이것저것 쿠폰 먹여서 15만원 안되게 산것 .. 2023. 11. 18.
메모리구조 초안 : 2023.05.19 프로세스는 생성되면 사용자 영역에 코드 영역, 데이터 영역, 힙 영역, 스택 영역으로 나뉘어 저장된다. (물론 지난 게시글에서 언급했듯, 커널영역에는 PCB 가 생성된다.) 아래 그림의 메모리 address 는 각각의 영역의 위치를 표현하기 위해 가정한 것이니 참고만 하기 바란다. code 영역 (code segment) code 영역은 text 영역이라고 부르기도 한다. 기계어로 이루어진 '명령어'가 저장된다. 즉, 코드 영역에는 '데이터'가 아닌 CPU 가 실행할 '명령어'가 저장되어 있기 때문에 '쓰기'가 금지되어 있다. (read-only space) data 영역 (data segment) 데이터 영역은 프로그램이 실행되는 동안 유지할 데이터가 저장되는 공간이다. 예.. 2023. 5. 19.
PCB & Context Switching 초안 : 2023.05.10 보조기억장치에 데이터 형대로 저장되어 있는 프로그램은 실행되어 메인 메모리에 적재되는 순간 '프로세스'가 된다. 프로세스는 사용자가 보는 곳에서 실행되는 것도 있고 보이지 않는 곳에서 실행되는 것도 있는데 전자를 포그라운드 프로세스 후자를 백그라운드 프로세스 라고 한다. 백그라운드 프로세스 중에서도 사용자와 전혀 상호작용하지 않고 맡은 일만 수행하는 프로세스가 있는데 이를 UNIX 운영체제 에서는 '데몬(daemon)' 이라고 하고 윈도우 운영체제 에서는 '서비스(Service)'라고 한다. 수많은 프로세스들이 동시에 실행되지만, CPU 자원은 한정되어 있다. 따라서 프로세스들은 차례대로 돌아가면서 정해진 시간동안 CPU를 사용하고, 시간이 끝나면(타이머 인터럽트가 발생하면).. 2023. 5. 10.
임베디드레시피 오늘 리뷰할 책은 snowbook 출판사에 나온 임베디드레시피 라는 책입니다. 원래 아래 홈페이지에서 작가님이 연재하시던 글인데, 워낙에 내용이 좋아서 예전에 출판이 되었다고 합니다. (벌써 11쇄가 넘었다고 하네요) http://recipes.egloos.com 임베디드 레시피 친절한 임베디드 개발자되기 강좌 recipes.egloos.com 위 페이지에 안내된 출판사 공식 스토어에서 책 구매도 가능합니다. 해당 책은 제가 학부를 졸업하고 첫 회사에 취업했을때 매니저님이 선물로 읽어보라고 주신 책이었습니다. 당시 업무가 SoC-Top RTL verification 으로 임베디드 시스템 전체적으로 관련이 있는 업무였는데, 빠르게 적응하기 위해서는 깊은 지식 보다는 전체적으로 임베디드 시스템의 큰크림을 바.. 2023. 4. 22.
입출력작업 - programmed i/o, interrupt driven i/o, DMA 초안 : 2023.04.18 입출력장치 (I/O Device) 입출력장치 (키보드, 마우스, 저장자치) 들은 각자 저마다의 컨트롤러를 통해 CPU 와 연결된다. (시스템 버스와 연결된다)물론 각 장치의 컨트롤러들은 장치에 특화된 기능을 수행하기도 하지만, 본 게시글에서는 CPU 와 입출력장치 간의 중개역할에 대해서만 언급한다. 위와 같은 관점에서 컨트롤러는 아래와 같이 3종류의 레지스터로 간략히 표현할 수 있다. 데이터 레지스터 : CPU 와 입출력장치 간에 주고받는 데이터가 담기는 레지스터. 데이터 버퍼링을 하며, 상대적으로 느린 I/O 장치와 CPU 의 전송률 차이를 완화한다. 상태 레지스터 : 입출력 장치가 입출력 작업을 할 준비가 되었는지, 완료되었는지, 오류가 없는지 등의 상태 정보를 저장한다... 2023. 4. 19.
운영체제와 커널(Kernel) - Dual Mode 란? 초안 : 2023.04.15 각각의 프로그램에 필요한 자원을 할당하고, 다른 프로그램들이 올바르게 실행되도록 돕는 프로그램이 바로 운영체제이다. 즉 운영체제도 다른 프로그램과 마찬가지로 메모리에 적재되어 실행된다. 다만 운영체제는 컴퓨터가 부팅될 때 메모리 내의 '커널 영역'에 따로 적재되어 실행된다. 커널 영역을 제외한 나머지 영역, 사용자가 이용하는 응용 프로그램이 적재되는 영역을 사용자 영역이라고 한다. 즉, 운영체제는 커널영역에 적재되어 사용자 영역에 적재된 다른 프로그램들에게 자원을 할당하고 이들이 올바르게 실행되도록 돕는다. 예를들어 각 프로그램들이 실행되면 메모리에 명령어들이 올라가게 되는데, 이들이 겹치지 않도록 적당한 공간에 적재해주는 주체가 운영체제이다. 운영체는 실행된 프로그램은 메모.. 2023. 4. 15.
캐시 메모리(Cache Memory)의 쓰기 동작 초안 : 2023.04.12 2023.04.10 - [Computer Architecture] - 캐시 메모리(Cache Memory)의 원리 2023.04.11 - [Computer Architecture] - 캐시 메모리(Cache Memory)의 구조 및 동작 과정 - 1 2023.04.12 - [Computer Architecture] - 캐시 메모리(Cache Memory)의 구조 및 동작 과정 - 2 지금까지는 내용은 모두 메모리를 read 할 때 캐시가 어떻게 동작하는지에 관한 것이었다. 프로세서는 메인 메모리에 값을 저장하려고 할 때, 캐시메모리에도 저장하고 메인 메모리에도 기록한다. 그런데 결과 값을 저장할 때마다 캐시와 메인 메모리 모두에 저장을 한다면, 메인 메모리의 늦은 access.. 2023. 4. 12.
캐시 메모리(Cache Memory)의 구조 및 동작 과정 - 2 초안 : 2023.04.10 2023.04.10 - [Computer Architecture] - 캐시 메모리(Cache Memory)의 원리 2023.04.11 - [Computer Architecture] - 캐시 메모리(Cache Memory)의 구조 및 동작 과정 - 1 이전 게시글에서 다룬 direct mapping 방식의 캐시 메모리를 생각해보면.. 메인 메모리의 어떤 데이터 블록은 캐시메모리의 지정된 슬롯으로 들어가야만 하고, 해당 슬롯에 이미 정보가 있다면 그 내용은 지워져야 한다. 캐시에 여유 공간이 있더라도 말이다. 이는 결과적으로 hit ratio 를 낮게 만드는 요인이 된다. Set Associative Mapping 이를 해결하기위해 direct mapping 캐시 메모리 두개를 .. 2023. 4. 12.
캐시 메모리(Cache Memory)의 구조 및 동작 과정 - 1 초안 : 2023.04.10 2023.04.10 - [Computer Architecture] - 캐시 메모리(Cache Memory)의 원리 캐시메모리에는 메인메모리의 일부 내용이 복사되어 저장된다. 프로세서가 어떤 주소에 접근하려고 하면, 먼저 그 주소에 해당하는 내용이 캐시에 있는지 확인하고 있다면 캐시메모리에서 바로 읽고, 없다면 메인메모리에서 읽고 캐시로 복사해온다. 이때 해당 주소 뿐만 아니라 인접 주소 내용도 함께 블록 크기로 복사한다. 즉 캐시메모리에 저장되는 정보는 두개이다. 1. 메인 메모리에서 복사한 데이터 블록 2. 이 데이터 블록이 메인 메모리의 몇번지에 있던 내용인지 나타내는 Tag 정보 아래 그림은 4x16 형식의 캐시 메모리 구조 예시이다. 4개의 데이터 블록이 있으며, 각 .. 2023. 4. 11.