- 목 차 -{1. StarCraft 소개{스타크래프트 소개{{1. 스타크래프트 소개21) Starcraft의 역사22) StarCraft 소개23)시스템 요구사항32. StarCraft 실행방법41) 게임의 목적42) 컴트롤에 사용되는 인터페이스43) 게임조작방법83. StarCraft에 등장하는 종족과 유닛121) 테란122) 저그193) 프로토스254. 게임의 룰, 팁311) 미션312) 일반게임313) 게임의 운용311. StarCraft 소개{스타크래프트 소개{{1. 스타크래프트 소개{1) Starcraft의 역사1998년 4월에 미국 블리자드 사가 개발하였다.지구인 테란, 외계생물체 저그, 진화된 외계 종족 프로토스 등 3개의 종족이 광활한 우주를 배경으로 치열한 전투를 벌이는 전략 시뮬레이션 게임이다. 소프트웨어를 불법복제로 유명한 우리나라에서 200만장(2001년 6월)이 팔릴 만큼 국내에서 최고의 인기를 누려오고 있다.스타크래프트는 우리나라의 게임문화 뿐만 아니라 사회 전반에 걸쳐 영향을 가장 많이 끼친 게임이다. 1999년 스타크래프트 돌풍은 국내 500여 개에 불과했던 PC 게임방을 15000여 개로 활성화 시켰고, 각 가정에 초고속 통신망(ADSL)을 보급시키며 세계 최고수준의 IT인프라를 갖추게 하는데 일조 하였다. 또한 여러 가지 신종 직업들, 예를 들어 프로게이머, 게임 테스터, 게임 캐스터 등등을 양산하였고, 게임만 방송을 하는 방송국, 게임학원, 대학에서 게임학과가 생길 만큼 우리 삶에 큰 영향을 주었다.2) StarCraft 소개{저 먼 은하계를 배경으로 서로 다른 세 가지 종족 중 하나를 선택한 다음, 그에 따른 30개의 독립적인 미션에 도전할 수 있다. 실시간으로 진행되는 게임에서 승리하기 위해서는 효율적으로 자원을 모으고, 병력을 생산한 다음 잘 훈련시켜야 한다.(1) 특징1 독자적인 유닛, 발전단계, 특성, 기술 등을 가지고 있는 세 가지 종족이 등장.2 배틀넷·IPX 네트워크를 이용해서 최대 8명까지 동시에 게임을 즐길존에 멀티플레이 ID가 없다면 'Create'를 클릭해서 여러분의 새로운 멀티플레이어 ID를 만들어야 한다. 자신이 새로운 게임을 만들어 다른 사람이 참여할 수 있도록 할 수도 있고, 다른 사람이 만든 게임에 참여할 수도 있다. 만약 다른 사람이 만든 게임에 참여하려면 먼저 참여하고자 하는 게임의 이름을 알아야 한다. 목록에서 원하는 게임의 이름을 선택하고 [OK]를 클릭 한다.- 모뎀 접속플레이어 수 : 2명요구 사양 : 각각 모뎀과 전화선에 연결된 2대의 컴퓨터시스템에 모뎀이 하나만 설치되어 있다면, 모뎀 접속(Modem Connection)을 선택하면 자동으로 진행될 것이다. 시스템에 모뎀이 두 개 이상 설치되어 있다면 사용하고자 하는 모뎀을 선택해야 한다. 전화를 받는 사람이 메뉴에서 'Create Game'을 선택한다. 전화를 걸 사람은 'New Number'를 선택한 다음 상대의 전화 번호를 입력한다. 만일 상대의 전화번호가 이미 입력이 되어 있다면 메뉴 목록에서 선택할 수도 있다. 모뎀의 설정이 올바르다면 자동으로 전화가 연결될 것이다.- 직접 접속플레이어 수 : 2 ~ 4명요구 사양 : 널-모뎀 케이블로 시리얼 포트가 연결된 2대 이상의 컴퓨터한 플레이어가 'Create Game'옵션으로 게임을 시작한다. 두 번째 플레이어가 자동으로 참여하지 않는다면 'Retry Connection'을 사용하여 게임에 다시 참여한다.3) 게임 조작 방법(1) 메뉴 (MENU){- 키보드의 이나 'MENU' 버튼을 누르면 스타크래프트 옵션 메뉴를 불러낸다.{1 Save Game (저장) : 현재 게임을 저장한다.2 Pause{그림 1 SAVE GAMEGame (일시 정지) : 현재 게임을 잠시 중단한다.{그림 2 PAUSE GAME3 Options{그림 3 GAME OPTION(옵션) : 속도 조절 및 사운드 메뉴를 부른다.4 Help (도움말) : 키보드 명령어와 팁을 볼 수 있다.5 Mission Objectives (미션 목표) : 현재 미션을 완료하기 위한(Vespene) 가스의 누출이나 갑작스런 에너지 방출로 인해 더 이상 공격을 받고 있지 않더라도 건물이 갑자기 붕괴될 수 있는 것이다. 심각한 손상을 입은 지구의 건물은 모두 에너지(Hit Point : HP)가 붉은 색으로 변하여 "위험 상황"을 알리게 된다. 위험 상황에 처한 건물은 계속 에너지가 감소하여 결국 파괴되고 만다. 이런 사태를 미연에 방지하려면 위험 상황에 처한 건물을 즉시 수리하여 에너지를 노란색 혹은 녹색 상태로 회복시켜야 한다.{3 지원Add-On 건물(추가 건물)을 제외하면, 모든 지구 건물은 일단 건축이 끝나면 추가적인 지원이나 자원을 필요로 하지 않는다. 추가 구조물은 원래 건물로부터 에너지를 공급받기 때문에 원래 건물이 파괴되거나, 이동하여 연결이 끊어지면 기능을 상실하고 만다. 하지만 지구의 보병과 차량들은 Supply Depots(서플라이 디폿)에서 식량과, 연료 그리고 부품을 끊임없이 공급받아야 한다. 현재 사용 가능한 보급품의 양은 주 화면의 오른쪽 위에 표시된다. 또한 서플라이 디폿을 선택하면 상황판에서 현재의 보급품 통계를 볼 수 있다. 서플라이 디폿의 수가 보유한 부대의 규모에 비해 적을 경우에는 추가로 서플라이 디폿을 건설하기 전까지 유닛의 제작이 불가능해진다.(2) 테란의 건물{{커맨드센터 ( 단축키 : B C )가장 기본으로 있는 건물 SCV(일꾼)을 생산 {400 {0{컴샛 {50 {50 {50 {뉴클리어 {100 {100{써플라잇 ( 단축키 : B S )인구수8명 증가 {100 {0{배스핀가스 ( 단축키 : B R )가스를 채집할 수 있음 {100 {0{배럭스 ( 단축키 : B B )지상생명체 유닛 생산 {150 {0{엔지니얼 베이 ( 단축키 : B E )미사일터넷 생산가능 및 지상 유닛 업 {125 {0지상군 공격 업그레이드 지상군 방어 업그레이드{미사일터릿 ( 단축키 : B T ) HP 200하늘에 있는 유닛공격 {100 {0 ↑D 20 중형{아카대미 ( 단축키 : B A )지상군 업그레이드 및 파이어벳과(지배력)을 합한 것 이상으로는 성장할 수 없다. 현재의 지배력은 항상 주 화면의 오른쪽 위에 표시된다. 각각의 Overlord(오버로드)를 선택하여도 현재 필요한 지배력과 제공되는 지배력의 정도가 표시된다.(2) 저그의 건물{{해처리 (단축키 : B H )가장 기본으로 존재하는 건물 드론(일꾼)을 생산 {300 {0땅에 숨는 기능 레어로 업그레이드{레어 ( 단축키 : L )럭커,스파이어,퀸스네스트 생산가능 {150 {100오버로드시아 오버로드속도 오버로드수송 하이브로{하이브( 단축키 : H )모든건물생산가능 {200 {150{익스트렉터 ( 단축키 : B E )가스를 채집할 수 있다 {50 {0{스포닝풀 (단축키 : B S )저글링 업그레이드 및 생산가능 {150 {0저글링 속도 저글링 연사속도{에볼루션채임버 ( 단축키 : B V )지상유닛 업 및 콜로니생산가능 {75 {0지상유닛 공업(히드라 제외) 히드라공업 지상유닛 방업{콜로니 ( 단축키 : B C )성큰콜로니와 스포어콜로니 생산가능 {75 {0{{스포어콜로니 ( 단축키 : S ) HP 400공중공격 {50 {0 ↑ D15 소형{스포어콜로니 ( 단축키 : U ) HP 400지상공격 {50 {0 ↓D40 중형{히드라리스크덴 ( 단축키 : B D )히드라생산 및 업가능 {100 {50히드라속도업 히드라 사정거리업{스파이어 ( 단축키 : V S )무탈, 스커지 생산 및 공중유닛 업 {200 {200공중유닛공업 공중유닛방업 그레이트 스파이어{그레이트 스파이어 ( 단축키 : G )가이언,디바우러생산가능 {100 {150{퀸스네스트 ( 단축키 : V A )퀸생산 및 업 {100 {50브루드링 적의속도를 느리게함 퀸에너지+50{나이더스캐널 ( 단축키 : V C )통로 사용가능 {150 {0{울트라리스크덴 ( 단축키 : V U )울트라리스크 생산 및 업 {150 {200울트라리스크 속도업 울트라리스크 방어+2{디파일러마운드 ( 단축키 : V F )디파일러 생산 및 업 {100 {100잡아먹어기채움 적의에너지감소 디파일러인터셉터+4커세여특수기(안개주의적공격못함) 커세여에너지+50(3) 프로토스의 유닛{1 프로브 ( {50, 넥서스)- 역할 자원 수집, 노동자- 무장 입자 빔- 일꾼, HP/쉴드 : 20/20 {: 5+0 {: 0+1 {0+1 {: 1{2 질럿 ( {100, 게이트웨이)- 역할 돌격대- 무장 사이언 검- 주요 기능 초반 공격과 방어 담당세 종족 중 가장 강력한 초반 유니트- HP/쉴드 : 80/80 {: 8+1*2 {: 1+1 {: 0+1 {: 2{3 드라군 ( {125 {50, 게이트웨이)- 역할 중형 지원 전사- 무장 페이즈 디스럽터- 주요 기능 지상 및 공중 공격과 방어 담당길 찾기 인공 지능이 떨어지는 단점을 가지고 있음- HP/쉴드 : 100/80 {: 20+2 {: 1+1 {: 0+1 {: 2{4 하이템플러 ( {50 {150, 게이트웨이)- 역할 사이언 전사- 무장 사이언 에너지 공격- 주요 기능 Psionic Storm(사이언 폭풍)을 이용한 공격 환상을 이용해서 아군 유닛 수를 많은 것처럼 보이게 함. 에너지가 떨어진 두유닛을 합체해서 Archon(아콘)으로 만들 수 있음- HP/쉴드 : 40/40 {: 0+1 {: 0+1 {: 2- Psionic Storm(사이오닉 스톰) : 사이언 폭풍- Hallucination(홀루시네이션) : 분신- Summon Archon(서먼 아콘) : 아콘으로 합체{5 아콘- 역할 중무장 돌격대- 무장 사이어닉 충격파- 주요 기능 High Templar(하이 템플러) 두 명을 합체해서 생산엄청난 방어막을 가진 강력한 지상 유닛- HP/쉴드 : 10/350 {: 30+3 {: 0+1 {: 0+1 {: 46 다크템플러 ( {125 {100, 게이트웨이){- 역할 은폐형 정예 돌격대- 무장 워프 검- 주요 기능 자체 은폐 능력으로 처음부터 보이지 않는 유닛.두 명의 Dark Templar(다크템플러)를 합체해서 Dark Archon(다크 아콘) 생산- HP/쉴드 : 80/80 {: 40+3 {: 1+1 {: 0+1 {:
#include int sum(int i, int j); // 합집합 계산. Wkik ∪ Wkkjint com(int i, int j); // 교집합 계산. Wkik ∩ Wkkj// 4개의 노드, 입력 값은 책 P 의 내용. node는 Wk-1행렬.int n=4;int node[4][4] = {0, 0, 0, 1,1, 0, 1, 0,1, 0, 0, 1,0, 0, 1, 0 };// warshall행렬 계산을 위한 Wk행렬.int nb[4][4];void main(){// 처음 데이타 표시.printf("처음 행렬 : ");for(int i=0; i
♣ 목 차 ♣1. 캐쉬메모리 탄생...... 22. 캐쉬메모리 구조 및 동작 방법...... 23. 캐쉬메모리의 크기, 블록 사이즈 및 성능...... 34. 캐쉬메모리 설계방법...... 65. 캐쉬메모리 리플레이스 알고리즘...... 76. 쓰기 정책...... 87. 앞으로의 동향...... 98. 참고 자료...... 101. 캐쉬메모리 탄생1977년 CPU의 클럭 주파수는 3MHz로 333nS의 속도로 DRAM의 200nS를 따라가지 못했다. 그러나 1987년 CPU는 33nS로 DRAM의 100nS의 속도를 추월하기 시작하여 1997년 CPU는3.3nS, DRAM은 50nS로 그 차이가 점점 벌어지고 있다. 그래서 보다 빠른 Access Time을 갖는 SRAM이 요구되었다. CPU에 최초로 채용된 것은 IBM 시스템 360/85이며, 그 후 IBM의 다른 컴퓨터나 타사의 대형 컴퓨터에 쓰이게 되었다. 일반적으로 버퍼 기억이라고 불리고 있다.캐쉬메모리는 시각적·공간적 지역성 원리에 의해 설계 구현되었다.*캐쉬메모리의 지역성①Spatial : 공간적 지역성. 한번 참조 된 곳에서 계속 참조될 가능성이 높은 것.②Temporal : 시간적 지역성. 한번 참조되면 다음에 또 참조될 가능성이 높은 것.*일반적으로 Spatial Locality보다 Temporal Locality가 더 높다. (같은 변수를 더 자주 호출하기 때문)2. 캐쉬메모리 구조 및 동작 방법⑴ 캐쉬메모리 구조. 캐쉬메모리의 크기, 블록 사이즈 및 성능< 그림 Line Size의 변화에 따른 각 Cache 구조의 Hit Ratios (Pentium 프로세서의 성능개선에 관한 연구 99년 7월 8일 조용훈 박사)>⑴애슬론xp펜티엄4펜티엄3듀론셀러론펜티엄3XEONL1캐쉬128Kb12kμop(Trace Cache)+8KB(Data Cache)32Kb128Kb32Kb64KBL2캐쉬256Kb256Kb256Kb192Kb160, 288Kb1M, 2M< 표 현재 시스템에 쓰이는 캐쉬메모리 크기 >캐쉬의 크기 : 전체적으로 비트당 평균 비용이 주기억장치의 평균비용과 비슷해질 만큼 충분히 작아야 하며, 또한 전체 평균 액세스 시간이 캐쉬의 액세스 시간에 가까워 질만큼 충분히 커야한다. 캐쉬의 크기를 최소화하는 이유는 캐쉬가 커질수록 캐쉬의 주소를 지정하는 데 필요한 케이트들의 수가 더 많아진다. 그러므로 용량이 큰 캐쉬들은 작은 개수들 보다 약간 느려지는 경향이 있다. 캐쉬의 성능은 작업부하의 특성에 민감하기 때문에 "최적(optimum)"의 캐쉬 크기를 결정하는 것은 불가능하다. 그러나 그림2에서 보듯이 8-way 512K의 캐쉬메모리와 8-way 256K의 캐쉬메모리가 99%이상의 적중률을 보이고 있음이 잘 나타나 있다.⑵ L1캐쉬와 L2 캐쉬① L1 cache (Level 1 cache, Primary cache, 1차 캐쉬) 메모리L1 cache는 프로세서 core에 내장된 cache 메모리로써 컴퓨터의 메모리 중에서 가장 작고 가장 빠른 것이 특징이다. 인텔 프로세서의 L1 cache는 486DX부터 8 KB를 사용하기 시작하였으며 펜티엄 및 펜티엄프로 프로세서는 instruction용 8 KB와 data용 8 KB로 나누어 16 KB를 내장하고 펜티엄 II 프로세서는 용량을 두 배로 늘려 32(16+16) KB를 L2 cache로 사용하고 있다. L1캐쉬의 경우 속도는 CPU와 같은 주파수로 동작한다.② L2 cache (Level 2 cache, Secondary cac읽을 수 있다. 따라서 주 메모리를 4회(4회 x 8 bytes = 32 bytes) 읽거나 씀으로써 L2 캐쉬에 1회의 "entry"(등록)를 마치는 것이다. 4회의 읽기나 쓰기에서 처 음 한 번만 주 메모리에 마련된 주소 정보(address information)를 읽으면 나머지 세 번의 읽기나 쓰기를 할 때는 주소들을 읽기 위하여 다시 접속(access)할 필요가 없게 된다. 왜냐하면 그 주소들이 첫 번째와 연속하여 있기 때문이다. 이처럼 네 번 접속해야 할 것을 단 한 번으로 줄이면 처리 속도가 대폭 빨라진다. 첫 번째 주 메모리 위치를 접속하기 위하여 지연되는 시간을 "latency time"(대기 시간)라고 한다. 이 기술이 반영된 L2 cache와 주 메모리의 access 타이밍 속도를 F-S-S-S와 같이 전문적인 방법으로 명시할 수가 있다. "F"는 First access(처음 접속)할 때의 clock cycle 수를 나타내고 "S"는 연이어 다음 접속(Subsequent access) 할 때의 cycle 수를 나타낸다.예를 들어 "5-2-2-2"는 처음 access할 때 5회의 clock cycle이, 나머지 세 번의 access는 각 2회의 clock cycle이 필요하다는 뜻이다. 펜티엄 시스템의 BIOS를 설정할 때 이와 같은 항목을 볼 수 있을 것이다. 펜티엄 II 시스템에서는 Cycle Time 10ns 미만의 빠른 PC-100 SDRAM을 주 메모리로 사용하고 있어 5-1-1-1 시스템 타이밍으로 동작한다.⑶ 캐쉬메모리의 블록 사이즈한 개의 데이터 블록이 읽혀져서 캐쉬에 저장될 때, 원하는 단어뿐만 아니라 인접한 몇 개의 단어들이 같이 읽혀온다. 블록크기가 증가할수록 적중률은 지역성의 원리에 따라 증가할 것이다. 블록의 크기가 클수록 더 유용한 데이터가 캐쉬로 들어올 것이다. 그러나 캐쉬의 크기에 한계가 있기 때문에 그 크기에는 한계가 있다.toshiba1 block by 16384 words, 2 block by 8192 word800,7800 이런 식으로 계속 하위 자리가 같은 주소를 부르게 되면 리플레이스를 자주 해야 하므로 캐쉬 메모리 의 성능이 저하될 우려가 있다.< 그림 2 Way Set Associative Mapping >⑵ SET-ASSOCIATIVE MAPPING : 다이렉트 매핑의 단점, 즉 하위 주소가 같으면 계속리플레이스해야 하는 것을 2way, 4way, 8way등으로 하나의 Tag RAM에 2, 4, 8개의 내용을 저장 가능하도록 설계한 것. 그러나 하나의 주소에 여러 개의 데이터가 있기 때문에 새로운 내용이 업데이트 될 때,어느 위치에 들어갈 것인지 결정하는 LRU알고리즘이 필요. 2way방식에서는 TrueLRU 알고리즘으로 동작하고 8way방식에서는 True LRU 알고리즘으로 한다면 64비트의 오버헤드가 생기므로 Pseudo LRU 알고리즘을 써서 7비트의 오버헤드만으로 사용한다. True LRU 알고리즘은 먼저 들어온 데이터를 0, 나중에 들어온 데이터를 1로 해서 먼저 들어 온 데이터를 리플레이스 시키는 것이고, Pseudo LRU 알고리즘은 두 개의 그룹으로 계속 나누어주는 것으로 첫 비트가 0이면 나중에 들어온 데이터이므로 보지 않고 첫 비트가 1인 그룹에서 다음 비트를 차례로 비교하면서 리플레이스 할 데이터를 찾는 알고리즘이다.⑶ FULLY ASSOCIATIVE MEMORY : 내용 지정 메모리(content addressable memory,< 그림 8 Fully Associative Mapping >CAM)라는 특수한 메모리 구조를 갖는다. 이것은 Tag RAM에 사용하는 것으로 Tag RAM은 메인 메모리의 주소를 다 저장하기 때문에 Direct나 set-associative 메모리보다 더 많은 용량을 차지한다. associate 메모리가 데이터를 어느 위치에 데이터를 갖다 놓을지 모르기 때문에 주소를 일일이 비교해야 한다. 그러나 CAM이라는 메모리는 데이터를 입력하면 데이터가 있는 주소를 반환한다. 따라서 대용량의 캐쉬에는 사용되지 않고. 결론적으로 특정 알고리즘의 성능을 측정함에 있어서 이론적 비교의 대상으로 주로 사용된다.⑶ LRU(Least Recently Used) 알고리즘 : 이 알고리즘은 과거의 행적에 대한 판단을 기준으로 페이지 바꾼다. 즉, 가장 오랫동안 사용하지 않는 페이지를 버린다. 구현을 위해서는 카운터 또는 스택을 이용해서 얼마나 오랫동안 사용하지 않았는지 트래킹하게 된다. 최적 알고리즘과 LRU알고리즘에는 벨로디의 예외 현상이 일어나지 않는다. 그러나, 최적은 구현이 불가능하고, LRU는 특유의 오버헤드가 많은데다가 하드웨어의 특별한 지원까지 필요로 하게되는 단점을 가지고 있다. 그러나 현재 기술의 비약적인 발달로 인해 하드웨어의 가격이 싸지고 있어서 대부분의 시스템에서 LRU알고리즘을 사용한다.⑷ LRU Approximation 알고리즘 : LRU의 구현이 어려우니 비슷하게 구현한 것. 그 중에 하나 주목할 만한 것이 있는데, 바로 Enhanced Second-Chance 알고리즘이다. Second Chance 알고리즘은 기본적으로 FIFO알고리즘의 골격에 큐의 Top와 Bottom을 연결하여 원형 순환을 시킨 뒤 각각의 큐 옆에 레퍼런스 비트(reference bit)를 달아주는 형태를 하고 있다. 레퍼런스 비트가 0일 경우는 바꾸고, 만일 1일 경우는 0으로 리셋되는 대신에 다음 프레임으로 넘어가게 되는 것. 만일 0으로 리셋 된 프레임이 히트되었을 경우는 0을 다시 1로 전환시켜준다. 본 알고리즘의 핵심은 말 그대로 두 번째 기회를 주게 된다는 것이며, 이렇게 한번 넘어가게 된다면 포인터가 전체 큐를 한번 돌기 전까지는 안전하게 프레임에 남아있게 된다.그렇다면 Enhanced Second-Chance이란? Enhanced는 위에 간략하게 설명한 알고리즘에 또 하나의 비트(더티 비트)를 추가해주게 된다. 더티 비트와 레퍼런스 비트의 조합에는 다음과 같은 경우의 수가 나오게 된다.(레퍼런스비트, 더티 비트)(0,0):최근에 사용되지도 안았고 변하지도 않았다. 가장 74