CS/OS & 하드웨어

    바이오스 (BIOS - Basic Input/Output System)

    정의 본래 펌웨어는 제품 생산 시에 탑재된 이후에는 내용 변경을 하지 않는 것이 관례였지만, 최근에는 지속적인 제품의 성능 향상 및 오류 개선을 위해 제품 출시 이후에도 제조사에서 새로운 펌웨어를 배포해 소비자들에게 업데이트 할 것을 권하는 경우가 늘어나고 있다. 이런 경우는 특히 스마트폰이나 휴대용 게임기와 같은 모바일 컴퓨팅 기기에서 흔히 볼 수 있다. PC용 펌웨어는 바이오스(BIOS: Basic Input/Ouput System)라고 하며, 해당 PC의 기본적인 데이터의 입력과 출력을 관리하는 것이 주된 역할이다. 바이오스는 메인보드(main board: 주기판) 상에 위치한 이피롬(EPROM), 혹은 플래시메모리(flashmemory) 칩에 저장되어 있다. 넓은 의미에서는 메인보드 외의 다른 하..

    펌웨어 (Firmware)

    펌웨어는 일반적으로 롬(ROM)에 저장된 하드웨어를 제어하는 마이크로 프로그램을 의미한다. 어떤 기능을 발휘하는 하드웨어를 만든다고 할 때, 그것을 제어하는 모든 회로를 하드웨어로만 만들면, 그 구조도 대단히 복잡해지고 심지어는 논리적인 표현을 하기가 어려운 부분도 발생한다. 이런 경우 상당부분을 소프트웨어로 대체하되 그 소프트웨어가 저장된 기억장치를 하드웨어의 제어 회로중의 중심부분으로 구성하면, 매우 간단하면서도 적은 비용으로 문제를 해결할 수 있게 된다. 이렇게 할 경우 하드웨어의 입장에서는 별도의 논리회로를 가진 것이 아니기 때문에 소프트웨어적인 특성을 가지고 있지만, 소프트웨어 입장에서는 마이크로 프로그램이 하드웨어를 제어하기 때문에 하드웨어적인 특성을 가진다고 설명할 수 있다. 소프트웨어의 기..

    내부 및 외부 단편화 (Internal/External Fragmentation)

    내부 단편화 (Internal Fragmentation) 내부 단편화란 주기억장치 내 사용자 영역이 실행 프로그램보다 커서 프로그램의 사용 공간을 할당 후 사용되지 않고 남게 되는 현상을 말한다. 위와 같이 100MB의 메모리에 80MB 크기의 프로세스를 올리게 되면, 20MB의 내부 단편화가 발생하게 된다. 즉, 적은 크기의 잔여 메모리가 발생해 해당 메모리를 사용할 수 없게 된다. 외부 단편화 (External Fragmentation) 외부 단편화란 남아있는 총 메모리 공간이 요청한 메모리 공간보다 크지만, 남아있는 공간이 연속적(contiguous)이지 않아 발생하는 현상이다. 위와 같이 남아있는 메모리 공간은 50MB+50MB =100MB로 요청한 메모리 공간 80MB보다 크지만, 남아있는 공간..

    OS가 하는 일 및 컴퓨터 구조

    OS가 하는일 OS는 응용프로그램간 하드웨어 사용을 조정하고 데이터를 관리한다. 사용자 관점 사용자가 어떻게 사용하느냐에 따라 달라진다. 예를 들어 데스크탑 같은 범용 컴퓨터는 주로 사용의 용이성에 집중하고, 스마트폰 같은 경우는 배터리와 낮은 퍼포먼스 때문에 연산을 적게하고 들고다니며 사용하기 쉽게하기 위해 인터페이스를 간소화한다. 시스템 관점 자원을 어떻게 해야 효율적으로 관리할 지를 결정하는 역할을 한다. Computer System Operation 현대의 컴퓨터 구조는 CPU, 메모리, 디스크, USB, 그래픽 어댑터로 구성된다. 컴퓨터가 구동을 하기 위해선 하드웨어를 초기화 하고 OS를 메모리에 적재할 프로그램에 가지고 있어야하는데 이를 bootstrap program이라 부른다. bootst..

    프로세서, 메모리, 캐시 개념 및 원리 (메모리 및 버스/연결 관한)

    시스템 버스 시스템 버스는 하드웨어를 물리적으로 연결하여 서로 데이터를 주고받을 수 있게하는 통로 역할을 한다. 이때 버스는 데이터 버스, 주소 버스, 제어 버스로 나뉜다. 데이터 버스 프로세서와 메인 메모리 그리고 주변 장치들 사이에서 데이터를 전송할 때 쓰인다. 이때 버스는 데이터를 주고받아야 하므로 양방향이다. 주소 버스 프로세서에서 메모리의 주소를 지정할 때, 그 주소가 어디인지에 대한 정보를 보내는 버스이다. 즉, 프로세서에서 01110011이라는 위치에 데이터를 보내려면 데이터 뿐만 아니라 데이터의 목적지인 01110011도 버스를 통해 보내는데 이를 주소 버스를 통해 보낸다. 결국 프로세서가 주소를 지정하면서 보내는 버스이다. 이 버스는 주소를 보내면 되니 단방향이다. 제어 버스 프로세서가 ..

    CPU의 역사

    최초의 16비트 CPU: 인텔 8086 / 8088(1978년) 1971년에 출시된 인텔의 '4004'가 원조다. 하지만 이는 전자계산기와 같은 특정 목적 단말기용으로 주로 쓰였으며, 오늘날 우리가 쓰는 PC(퍼스널컴퓨터)용 CPU의 원조는 1978년에 나온 인텔의 16비트 CPU인 8086, 그리고 그 자매품인 8088이라 할 수 있다. 이 때문에 지금도 PC용 CPU는 ‘x86 계열’이라 부른다. 최초의 32비트 CPU: 인텔 80386(1986년) 1980년대에 들어 PC의 이용 범위가 급격히 넓어지면서 한층 고성능의 CPU가 요구되었다. 1986년에 출시된 인텔 80386은 32비트 명령어를 처리할 수 있는 최초의 x86계열 CPU로, 흔히 ‘386’이라는 이름으로 불리곤 했다. 80386이 큰 ..

    CPU 캐시의 원리 (캐시 라인과 태그)

    프로세서가 빈번하게 사용하는 데이터를 빠르게 추출하기 위한 '캐시 라인' 이라는 데이터 단위라고 불리며 데이터 저장구조로는 대표적으로 몇 가지 있다. Full Associative 방식 Set Associative 방식 Direct Map 방식 캐시 라인과 태그 프로세서는 다양한 주소에 있는 데이터를 사용하므로 일반적으로 빈번하게 사용하는 데이터의 주소는 여기저기 흩어져 있어서 캐시에 저장하는 데이터에는 해당 데이터의 메모리 주소 등을 쓴 태그를 달아놓을 필요가 있다. 그리고 메모리로부터 가져오는 데이터 묶음(단위)을 캐시 라인이라고 한다. 태그의 크기, 캐시 라인의 크기 캐시 라인에 붙이는 태그는 32비트 주소 공간을 갖는 프로세서는 32비트, 64비트 주소 공간을 갖는 프로세서는 64비트 정도의 크기..

    CPU 프로세서 CISC / RISC 차이

    1.CISC (Complex Instruction Set Computer) *Complex 복잡한, 복합체의 CISC는 필요한 모든 명령어 셋을 갖추도록 설계된 마이크로프로세서에 관련되는 용어로서, 요구되는 능력을 가장 효율적인 방법으로 제공했었다. 이름에서 알 수 있듯이 컴퓨터에 주어진 CISC 명령은 매우 작기 때문에, 그 당시 메모리 부족의 문제점을 보완할 수 있었다. 그러나 그 후, instruction set 자체를 가장 자주 사용되는 명령어만으로 개수를 줄임으로써 대부분의 활용업무 면에서 소요되는 시간을 줄일 수 있는 방법이 고안되었는데, 이것을 RISC라고 불렀다. 그러다 보니, 이러한 RISC 프로세서와 모든 명령어 셋을 갖추고 있는 컴퓨터를 구별할 수 있는 말이 필요하게 되었는데, 그래서..

    CPU 그리고 캐시 메모리

    cpu의 퍼포먼스는 다음으로 결정된다. 코어 수 클럭 속도 캐시 메모리 프로세서 타입 (따로 글로 빼둠) 코어 cpu는 하나 또는 그 이상의 프로세서를 가질 수가 있다. 내부 논리 구조는 아래와 같다. 컴퓨터 메모리에 담겨있는 프로그램을 실행하라는 입력이 들어와서 프로그램이 실행되는 순서는 입력 - CU(컨트롤유닛)가 메모리에 프로그램 데이터를 호출 메모리에서 레지스터로 자료가 이동 ALU(산술연산장치)에서 프로그램을 계산 또는 해독 출력 CU (Control Unit) 명령 제어장치 입력된 명령어를 해독하여 cpu 내부의 움직임을 총괄하고 각 과정을 통제한다. 주로 데이터를 메모리로부터 ALU로 옮기라는 명령과 그 후 다시 메모리로 옮기는 명령을 내린다. CU의 명령에 의한 명령 처리 과정 캐시나 파이..

    CPU 32비트 64비트와 두 프로그램의 차이

    CPU 32비트와 64비트 차이 컴퓨터에는 32비트, 64비트 두 가지 유형의 프로세서가 존재한다. 이것은 컴퓨터 프로세서가 CPU 레지스터에 전달할 수 있는 메모리의 양이다. 즉 32비트보다 64비트 프로세서가 데이터 처리량이 높기 때문에 더 우수한 성능을 보여준다. 32비트 232개의 메모리 주소, 즉 4GB((4,294,967,296바이트) 정도의 물리 메모리(RAM)에 전달할 수 있다. 64비트 264개의 메모리 주소, 실제로 18GB (18,446,744,073,709,551,616)바이트 또는 17,179,869,184GB(16EB) 정도의 물리 메모리(RAM)에 전달할 수 있다. 듀얼 코어, 쿼드 코어, 6 코어, 8 코어 버전의 홈 컴퓨팅으로 제공될 수 있다. 속도 향상. 멀티태스킹에서 많..