cache memory - 1

Posted by ironmask84
2008. 8. 31. 01:10 컴퓨터공학


캐시는 CPU의 성능을 향상시키기 위해 사용되는 전용의 소형고속기억 장치입니다. 
또는 같은 목적으로 사용되는 주기억 장치의 일부분을 말합니다. 

캐시는 CPU와 CPU에 비해 속도가 느린 주기억 장치(하드) 사이에 데이터와 명령어들을 일시적으로 저장하는기억 장소를 제공하며, CPU가 하드로부터 읽고 하드에 기록할 때보다 몇 배 빠른 속도또는 CPU에 가까운 속도로 접근할 수 있게 합니다. 캐시의 기억 용량이 클수록 요구되는데이터가 이미 캐시에 저장되어 있을 확률이 크기 때문에 그만큼 성능이 향상됩니다. 

컴퓨터 시스템에 사용되는 캐시에는 전용의 고속기억장치인 캐시 메모리(cache memory)와하드의 일부분을 사용한 디스크 캐시(disk cache)의 2종류가 있습니다. 

일반적으로 캐시라고 하면 캐시 메모리를 가리킵니다. CPU가 하드에 접근하여 데이터를 읽거나 기록하면, 그 내용의 사본이 주기억 장치 주소와 함께 캐시에 저장됩니다..

CPU가 어떤 주기억 장치 주소를 참조하면, 캐시는 그 주소가 캐시 내에 있는지를 점검하여 그 주소가 있으면 해당되는 데이터를 즉시 CPU에 전달한다. 

따라서 하드에 접근할 필요가 없게 됩니다. 그 주소가 캐시에 없으면 캐시는 해당되는 데이터를 하드로부터 읽어와 CPU에 전달하고 캐시 내에 저장합니다.. 또 캐시는 CPU가 다음 명령이나 프로그램을 실행하기 위해 필요한 데이터와 명령어를 미리 예측 알고리즘을 통해서 예측하여 하드로부터 큰 블록 단위로 읽어와 저장한다. 그럼으로써 CPU가 필요할 때마다 하드로부터 가져와야 하는 시간을 줄여 실행을 빠르게 합니다.

CPU에 내장되는 캐시를 주캐시(primary cache) 또는 1차 캐시(level 1 cache, L1 cache)라고 하고,컴퓨터 본체 기판에 탑재되는 캐시를 보조 캐시 또는 2차 캐시(L2 cache )라고 합니다.

펜티엄과 같은 최근의 CPU에는 캐시 충돌의 방지와 성능 향상을 위해 명령어 캐시와 데이터 캐시로 분리된 2개의 캐시가 내장되어 있다. 디스크 캐시는 디스크로부터 읽어온 데이터를 디스크와 CPU 사이에 일시적으로 저장하기 위해 특별히 할당되어 있는 하드의 일부분입니다.
최근에 디스크로부터 읽어온 데이터 또는 디스크에 기록된 데이터가 여기에 저장됩니다.
요구되는 데이터가 디스크 캐시에 있으면, 그 데이터를 디스크 장치가 디스크로부터 가져 오는 것을 프로그램이 기다리지 않아도 되기 때문에 접근 시간이 상당히 단축되고 실행이 빨라집니다.



'컴퓨터공학' 카테고리의 다른 글

퀵소트 - 알고리즘  (4) 2008.09.21
삽입정렬 - 알고리즘  (0) 2008.09.21
임베디드 시스템과 임베디드  (0) 2008.09.15
Embedded에서 ARM의 의미  (0) 2008.09.15
운영체제의 종류  (0) 2008.09.15
프로그래밍언어론 - 용어  (0) 2008.09.03
cache 적중률  (1) 2008.08.31
cache memory - 2  (0) 2008.08.31
컴퓨터 시스템에서의 계산표현에 쓰이는 보수들  (0) 2008.08.30
자료구조 - Tree  (0) 2008.08.30
 

컴퓨터 시스템에서의 계산표현에 쓰이는 보수들

Posted by ironmask84
2008. 8. 30. 18:49 컴퓨터공학


2's
1's

signed
Magnitude

+7
0111
0111
0111
+6
0110
0110
0110
+5
0101
0101
0101
+4
0100
0100
0100
+3
0011
0011
0011
+2
0010
0010
0010
+1
0001
0001
0001
+0
0000
0000
0000
-0
-
1111
1000
-1
1111
1110
1001
-2
1110
1101
1010
-3
1101
1100
1011
-4
1100
1011
1100
-5
1011
1010
1101
-6
1010
1001
1110
-7
1001
1000
1111
-8
1000
-
-

'컴퓨터공학' 카테고리의 다른 글

퀵소트 - 알고리즘  (4) 2008.09.21
삽입정렬 - 알고리즘  (0) 2008.09.21
임베디드 시스템과 임베디드  (0) 2008.09.15
Embedded에서 ARM의 의미  (0) 2008.09.15
운영체제의 종류  (0) 2008.09.15
프로그래밍언어론 - 용어  (0) 2008.09.03
cache 적중률  (1) 2008.08.31
cache memory - 2  (0) 2008.08.31
cache memory - 1  (0) 2008.08.31
자료구조 - Tree  (0) 2008.08.30
 

자료구조 - Tree

Posted by ironmask84
2008. 8. 30. 18:45 컴퓨터공학


Tree 개념

tree : 1 개이상의 노드들이 링크로 연결된 모임
subtree : 각 노드 자신을 root로 보고, 그 자신 밑에 형성된 트리
parent, sibling, children, ancestor => 부모, 형제, 자식, 조상
degree of tree : 노드들 중 가장 큰 차수의 값
degree of node : 그 노드의 서브트리의 개수
leaf or terminal : zero degree (즉, 자식 노드가 없다.)
level : root node가 level1
height or depth : tree에서 가장 큰 레벨의 값

Binary tree : degree가 2인 트리
Complete Binary tree : 바이너리 트리중에서 terminal을 제외한 모든 노드들은 자신의 child노드들을 중간에 빠짐없이 모두 가지고 있는 트리
Full Binary tree : terminal을 제외한 모든 노드들은 2개의 child노드들을
                        가지고 있는 트리

바이너리 트리가 트리 데이터 Structurer에서 유용한 이유
==> 이진 검색 트리를 이용해서 배열보다 어떤 뭔가를 검색할 때
      좀 더 빠르게 할 수 있다.

장점
--> 하나의 자식노드가 주어졌을 때 이의 부모 노드가 즉시 결정된다.
      포화이진트리 형태의 운형은 배열 표현이 가장 효율적이다.

단점
--> 부분적으로 기억장소를 낭비하는 문제가 발생한다.
      노드의 삽입삭제 조작이 자주 발생하면 자료를 배열의
      위, 아래로 이동해야 하므로 많은 처리시간이 요구된다.

'컴퓨터공학' 카테고리의 다른 글

퀵소트 - 알고리즘  (4) 2008.09.21
삽입정렬 - 알고리즘  (0) 2008.09.21
임베디드 시스템과 임베디드  (0) 2008.09.15
Embedded에서 ARM의 의미  (0) 2008.09.15
운영체제의 종류  (0) 2008.09.15
프로그래밍언어론 - 용어  (0) 2008.09.03
cache 적중률  (1) 2008.08.31
cache memory - 2  (0) 2008.08.31
cache memory - 1  (0) 2008.08.31
컴퓨터 시스템에서의 계산표현에 쓰이는 보수들  (0) 2008.08.30