shopkeeper/korean_wiki_content_only_120125 huggingface dataset:
남베트남 민족해방전선은 남베트남 공수부대원들을 한 명씩 사살할 수 있었다. 일부는 강하 중에, 다른 일부는 낙하산이 나무에 걸렸을 때 사살되었다. 지상에 도착하여 살아남은 공수부대원들은 전진하려고 했지만, 은폐된 위치에 있던 남베트남 민족해방전선 병사들은 노출된 논에 있는 공수부대원들에게 발포했다. 굴하지 않고, 베트남 공화국 육군 제8공수대대는 소부대 공격을 감행했지만, 매번 격퇴되었고, 해 질 녘까지 산발적인 전투가 계속되었다. 그날 하루가 끝날 무렵, 공수대대는 전사자 19명과 부상자 33명을 잃었다. 남베트남군과 함께 낙하한 미군 고문 플레처 웨어 대위와 러셀 콥티 하사도 부상을 입었다. 밤이 되자 호앙은 남베트남군이 세 방향에서 포위하고 있다는 것을 알았다. 동쪽 측면은 열려 있었고, 그는 지치고 탄약이 부족한 제261대대와 제514대대 모두에게 압탄토이 남쪽 끝에 집결하라고 명령했다. 그들은 죽은 자와 부상당한 동료들을 데리고 논을 통해 대피했다.
반은 C-47 플레어 비행기를 사용하여 압박과 압탄토이 동쪽 측면의 논을 밝히고 싶어 했다. 그는 후퇴하는 남베트남 민족해방전선을 500발의 포병 사격으로 강타하여 섬멸하고 싶어 했다. 까오는 공수대대의 야간 방어 진지를 노출시킬 수 있다는 이유로 플레어 사용을 승인하지 않았고, 대신 시간당 4발씩 100발의 포병 사격을 명령했다. 오후 10시, 남베트남 민족해방전선 지휘관 호앙은 두 개 중대를 이끌고 압탄토이를 떠나 갈대 평야의 기지 캠프로 향했고, 지역군 부대는 다른 경로로 지역 은신처로 떠났다. 제261대대 제1중대가 선두를 이끌었고, 그 뒤를 사상자를 운반하는 들것 운반병들이 따랐다. 제514대대 제1중대는 후위 병력으로 한 소대가 후방 경계를 맡으며 대형의 후미를 담당했다. 부상당한 남베트남 민족해방전선 병사들은 압탄토이 동쪽 운하에서 삼판으로 옮겨졌고, 나머지 대형은 계속 진군했다. 1월 3일 오전 7시, 호앙의 병사들은 발각되지 않고 성공적으로 목적지에 도달했다.
1월 3일, 서방 언론인들은 미군 고문들과 함께 버려진 압박 마을을 둘러보았다. 리차드 시한 기자가 로버트 요크 준장에게 무슨 일이 있었냐고 묻자, 장군은 "도대체 무슨 일이 일어난 것 같나, 젊은이? 그들은 도망쳤어, 그게 일어난 일이지!"라고 대답했다. 얼마 후, 18시간이 넘게 늦게, 남베트남군은 압박에 포격 공격을 가했다. 포격으로 5명의 남베트남 병사가 더 사망하고 14명이 부상을 입었다. 전투 초기 단계에서 중요한 결정을 내렸던 반은 이 참사의 원인을 남베트남군에게 돌렸다. "비참한 빌어먹을 실책이었어, 늘 그렇듯이 말이야. 이 사람들은 듣지 않아. 똑같은 실수를 계속해서 반복해." 마크 모야르에 따르면, 반은 남베트남군을 비난함으로써 미국의 잘못된 정보와 형편없는 리더십을 숨기려 했다. 그는 남베트남군이 자신이 선호하는 미래의 변화를 수용하도록 압력을 가하기를 바랐다.
베트남 군사원조사령부 (MACV) 사령관인 폴 D. 하킨스 장군은 전투에 대해 훨씬 더 낙관적인 평가를 내렸다. 그는 이 작전을 큰 성공으로 간주했다. 남베트남 민족해방전선이 진지를 포기한 후, 남베트남군은 압박과 압탄토이 마을을 점령했다. 하킨스의 전투 성공 평가는 제2차 세계 대전의 미군 군사 교리에 기반을 두고 있었는데, 여기서는 상대방의 영토를 장악하는 것을 목표로 하는 재래식 제병 연합 부대 전투를 벌였다. 그러나 남베트남 민족해방전선은 디엠 정권과 그 군대의 약점을 폭로하는 데 더 관심이 있었다. 모야르(2008)는 하킨스의 재래식 교리에 기반한 확고한 낙관적 평가가 전술과 전투 준비, 그리고 베트남 공화국 육군 지휘관들과 미군 상대 및 고문들이 운영하는 방식의 단점을 인식하는 것을 피했다고 주장한다. 그의 태도 때문에 남베트남군과 미군 지휘부 모두 전투에서 유용한 교훈을 얻지 못했다.
전투에 참가한 남베트남군은 남베트남 민족해방전선군을 격파하려는 실패한 시도에서 막대한 손실을 입었다. 남베트남군 사상자는 전사자 83명과 부상자 최소 100명이었다. 고문과 항공 승무원을 포함한 미군 참가자는 사망자 3명과 부상자 8명을 기록했다. 작전을 지원하기 위해 파견된 미군 헬리콥터 15대 중 단 한 대만 손상되지 않았고 5대가 격추되거나 파괴되었다.
남베트남 민족해방전선에게 압박 전투는 5대 1 이상의 수적 열세에도 불구하고 대규모 남베트남군 대형에 맞서 처음으로 싸운 전투였다. 압도적인 역경 속에서 남베트남 민족해방전선은 사실상 첫 승리를 거두었다. 그들은 포병과 장갑 부대, 그리고 미군의 항공 지원을 받는 잘 갖춰진 베트남 공화국 육군 병력을 성공적으로 저지했다. 남베트남 민족해방전선 사상자는 전사자 18명과 부상자 39명으로 제한되었는데, 이는 그들의 진지가 13대의 전폭기와 5대의 UH-1 건십이 발사한 600발 이상의 포탄, 네이팜탄, 기타 탄약에 맞았음에도 불구하고였다.
압박 전투는 남베트남 정부와 베트남에 대한 미국의 개입에 광범위한 영향을 미쳤다. 이 전투는 남베트남 민족해방전선에게 중요한 전환점이었다. 개별 남베트남 민족해방전선 병사들에게 이 전투는 그들이 최신 군사 장비와 미국으로부터의 상당한 지원 및 자금 지원을 받은 명목상 우월한 베트남 공화국 육군 병력을 격파할 수 있음을 보여주었다. 군사적으로, 전년도에 심각한 차질을 겪었던 남베트남 민족해방전선 지휘관들과 병사들의 사기와 자신감은 크게 향상되었다. 정치적으로, 남베트남 민족해방전선 제261대대와 제514대대는 베트남 공화국 육군 병력에 불균형한 손실을 입힌 것으로 얻은 명성을 활용하여 작전 지역에서 더 큰 영향력을 행사할 수 있었다.
전략촌 프로그램과 1962년의 강화된 군사 작전의 초기 성공에도 불구하고, 압박에서의 사건들은 디엠 정부에 추가적인 압력을 가했다. 왜냐하면 이는 특히 메콩델타 지역에서 남베트남 민족해방전선의 재부상에 대처할 준비가 되어 있지 않음을 보여주었기 때문이다.
아이비 작전()은 미국의 8번째 핵실험 시리즈로, 텀블러-스내퍼 작전 이후와 업샷-노트홀 작전 이전에 진행되었다. 1952년 말 마셜 제도의 태평양 실험장 내 에네웨타크 환초에서 두 차례의 폭발이 진행되었다.
아이비 작전 핵실험 시리즈는 해리 S. 트루먼 대통령이 1950년 1월 31일 미국이 모든 형태의 핵무기에 대한 연구를 계속해야 한다고 명령한 이후, 원자탄이 아닌 수소폭탄을 포함한 첫 번째 시리즈였다. 이 폭탄들은 미국 원자력위원회와 국방부가 해군 함정 위에서 준비했으며, 통제함 USS 에스테스에서 원격으로 폭발시킬 수 있었다.
아이비 작전의 첫 번째 실험인 코드명 마이크는 텔러-울람 설계를 사용한 수 메가톤급 수소폭탄("수소폭탄")의 첫 번째 성공적인 전면적 실험이었다. 이후의 열핵무기와 달리, 마이크는 비싸고 번거로운 극저온 시스템으로 액체 상태를 유지하는 중수소를 핵융합 연료로 사용했다. 이 폭탄은 1952년 11월 1일 엘루겔라브섬에서 폭발했으며, 10.4 메가톤의 위력을 가졌는데, 이는 나가사키에 투하된 폭탄의 거의 500배에 달하는 위력으로, 섬이 완전히 증발되는 결과를 초래했다. 위력 중 8메가톤은 우라늄 탬퍼의 고속 핵분열로 발생하여 엄청난 양의 방사성 낙진을 생성했다. 이 폭발로 엘루겔라브섬이 있던 자리에 폭 1.9km, 깊이 50m의 수중 분화구가 생겼다. 이 성공적인 실험 이후, 마이크 설계는 EC-16으로 무기화되었으나, 2년 후 캐슬 브라보 실험의 성공 이후 고체 연료 설계로 빠르게 대체되었다.
이 실험 결과는 원자력위원회 위원장 고든 딘에 의해 신임 대통령 아이젠하워에게 다음과 같이 보고되었다: “엘루겔라브섬이 사라졌습니다!”
시료 채취 임무.
필터가 장착된 4대의 미 공군 F-84G 썬더젯이 버섯 구름의 줄기 부분을 통과하며 방사화학적 시료를 채취하여 분석했다. 신생 1211 시험 비행대대의 "레드 플라이트" 리더 버질 K. 메로니는 먼저 폭발의 줄기 부분으로 진입했다. 5분 만에 그는 채취할 수 있는 모든 시료를 모으고 빠져나왔다. 28세의 지미 프리슬리 로빈슨 대위는 561 전투 비행대대 소속으로 임무 막바지에 실종되었다. 구름에서 다시 나온 후, 그와 그의 윙맨인 밥 헤이건 대위는 폭발의 "전자기 후유증" 때문에 재회 지점과 활주로 항법 비콘을 잡는 데 어려움을 겪었다. 로빈슨은 심한 난기류 지역에 진입하여 회전에 빠졌고 간신히 의식을 유지했다. 그는 20,000피트 상공에서 비행기 제어를 되찾았지만, 전자기 폭풍이 그의 계기를 방해했다. 비와 시야 불량 속에서 작동하는 계기 없이 헤이건과 로빈슨은 급유를 위한 KB-29 급유기를 찾을 수 없었다. 신호를 찾는 데 성공했을 때, 연료가 위험할 정도로 부족했고 에네웨타크 활주로에 도달하기 전에 둘 다 연료를 소진했다. 헤이건은 활주로에 성공적인 무동력 착륙을 했지만, 로빈슨은 너무 멀리 떨어져 있었고 불시착을 시도했다. 그의 제트기는 섬에서 3.5마일 떨어진 곳에 추락하여 침몰했다. 로빈슨의 비행기는 뒤집혔고 그의 시신은 끝내 발견되지 않았다. 실종 약 1년 후, 그는 자신의 공로로 사후 수훈 비행 십자장을 수여받았다. 2002년, 버지니아의 알링턴 국립묘지에 위령비가 세워졌다.
미 공군 조종사들이 폭발로부터 시료를 채취한 결과, 과학자들은 플루토늄-246과 플루토늄-244 동위원소의 흔적을 발견하고 예측되었지만 발견되지 않았던 원소인 아인슈타이늄과 페르뮴의 존재를 확인했다.
두 번째 실험인 킹은 핵분열만을 사용하여 (핵융합이나 핵융합 증폭 없이) 현재까지 가장 높은 위력(500킬로톤)의 핵분열 (원자탄) 무기를 발사했다. 이 실험은 B-36 폭격기에서 감속되지 않은 자유 낙하 폭탄을 사용했다. 폭격기는 경미한 열 및 폭발 피해를 입고 안전하게 기지로 귀환했다. 이 "슈퍼 오랄로이 폭탄"은 핵융합 무기가 실패할 경우를 대비하여 이전 "마이크" 실험의 백업으로 의도되었다.
대중문화 속 아이비 작전.
비디오 게임 시드 마이어의 문명 VI에서 아이비 작전은 플레이어가 자신의 도시 중 한 곳에서 건설할 수 있는 후반부 프로젝트이다. 이 프로젝트를 완료하면 플레이어는 핵무기(게임 내 원자탄 버전)보다 강력한 열핵 장치를 건설할 수 있다.
비디오 게임 시드 마이어의 문명 VII에서 아이비 작전은 플레이어가 자신의 도시 중 한 곳에서 건설할 수 있는 후반부 프로젝트이다. 이 프로젝트를 완료하는 것은 현대 시대의 군사 유산 경로의 승리 조건이다.
오퍼레이션 아이비라는 미국의 펑크 록 밴드가 있었는데, 실제 핵실험의 이름을 따서 지어졌다.
업샷-노트홀 작전()은 1953년 네바다 핵 실험장에서 실시된 11번의 핵실험 시리즈이다. 아이비 작전에 이어 진행되었으며 캐슬 작전에 앞서 진행되었다.
21,000명 이상의 군인이 업샷-노트홀 그레이블 실험과 연계하여 지상 훈련인 데저트 록 V에 참가했다. 그레이블은 "원자포"에서 발사된 280mm 포발사핵투사체(AFAP) 포탄으로, 다수의 고위 군 관계자들이 참관했다.
이 실험 시리즈는 AFAP 포탄이 처음으로 발사된 것(GRABLE 실험), 캘리포니아 대학교 방사선 연구소(현 로렌스 리버모어 국립연구소)의 첫 두 번의 실험(둘 다 실패)이 포함되었다는 점, 그리고 대규모 핵융합 시리즈인 캐슬 작전에 사용될 일부 핵융합 구성 요소를 시험했다는 점에서 주목할 만하다. 하나의 기본 장치(RACER)는 TX-14, TX-16, TX-17/TX-24의 열핵 시스템 모형 조립체에서 시험되어, 캐슬 작전 중 전면적 시험에 앞서 방사선 케이스의 거동과 주 장치의 X선에 의한 2차 장치의 기하학적 구조 압축을 조사하고 평가했다. RACER의 불확실한 성능 이후, COBRA 주 장치는 비상용 ALARM CLOCK, JUGHEAD, RUNT I, RUNT II 열핵 장치 및 SHRIMP 장치에 사용되었다. RACER IV(재설계 및 사이먼 실험에서 성능 검증된 버전)는 ZOMBIE, RAMROD 및 MORGENSTERN 장치의 주 장치로 사용되었다.
해군 과학자 폴린 실비아(Pauline Silvia)는 이 실험 기간 동안 실험을 수행했으며, 후에 2010년 다큐멘터리 아토믹 맘에서 다루어졌다.
애니의 계획된 핵출력은 였고, 방사화학 분석에 따른 실제 핵출력은 였다.
낸시.
낸시의 계획된 핵출력은 였고, 방사화학 분석에 따른 실제 핵출력은 였다.
사이먼.
사이먼의 계획된 핵출력은 였고, 방사화학 분석에 따른 실제 핵출력은 였다.
해리의 계획된 핵출력은 였고, 방사화학 분석에 따른 실제 핵출력은 였다.
앙코르의 계획된 핵출력은 였고, 방사화학 분석에 따른 실제 핵출력은 였다.
품탐 웨차야차이 (, , ; 1953년 12월 5일~)는 2025년 7월 패통탄 친나왓이 정직된 후 태국 총리 대행을 맡고 있는 태국의 정치인이다. 그는 이전에 세타 타위신이 해임된 후 2024년 8월 14일부터 16일까지 총리 대행을 지냈다. 그는 세타 내각에서 부총리와 상무부 장관을 역임했으며, 패통탄 내각에서는 국방부 장관을 역임했다. 그는 현재 부총리 겸 내무부 장관을 겸하고 있다.
품탐은 1953년 12월 5일 프라나콘 방콕에서 태어났다. 그는 타위타피섹 학교에서 고등학교를 졸업했다. 고등 교육을 계속하면서 품탐은 1975년 쭐랄롱꼰 대학교 정치학부에서 정치학 학사 학위를 취득했으며, 1984년에는 정치학 석사 학위를 취득했다.
품탐은 1997년부터 1998년까지 신 코퍼레이션의 최고경영자였다.
품탐은 1977년부터 1978년까지 태국공산당의 일원이었다. 그는 이후 1978년부터 1997년까지 민주당의 일원이었고, 타이락타이 (TRT)에 합류했다.
품탐은 총리 탁신 친나왓의 고문으로 일하다가 탁신 2차 내각에서 교통부 차관으로 임명되었다.
탁신 정부는 2006년 11월 19일 쿠데타로 태국 왕립 육군에 의해 전복되었다. TRT는 해산되었고 품탐을 포함한 111명의 당 간부들은 2007년에 향후 5년간 정치적 공직을 맡는 것이 금지되었다. 그럼에도 불구하고 품탐은 미디어 전략가로 배후에서 일하며 탁신과 그의 정당들에 충성심을 유지했다. 2012년 4월에 금지 조치가 만료되자 그는 국가 화해에 대한 열망과 TRT의 후계 정당인 프아타이당 (PTP)을 위해 일할 의사를 밝혔다. 111명의 전직 간부들에 대한 정치적 금지 조치 해제는 총리 잉락 친나왓에게 그녀의 내각을 개편하여 자리를 마련하도록 압력을 가했다. 품탐은 내무부 장관직에 대한 유력한 후보로 거론되었지만, 그 자리를 받지 못하고 대신 2012년부터 2013년까지 당의 이사, 이후 사무총장 겸 부대표를 역임했다.
세타 및 패통탄 정부.
2023년 2023년 태국 총선거 이후, 품탐은 세타 내각에서 부총리 겸 상무부 장관으로 임명되었다.
2024년 4월 28일, 품탐은 판프리 바힛타누카라의 사임 이후 외무부 장관 대행으로 임명되었다. 그는 4월 30일 마리스 상이암퐁사가 그 뒤를 이었다.
2025년 3월, 품탐은 신장 위구르 자치구 당 서기 마싱루이와 태국이 위구르족 40명을 중국으로 추방한 문제에 대해 회의를 가졌다.
총리 대행 (2024년, 2025년).
2024년 8월 14일, 품탐은 헌법재판소가 세타 타위신을 해임한 후 태국 총리 대행으로 임명되었다.
패통탄 친나왓이 헌법재판소에 의해 총리직에서 정직된 후, 그녀의 부총리였던 품탐이 임시 총리가 되었다.
총리로서 품탐은 7월에 2025년 캄보디아-태국 국경 분쟁의 격화를 주재했다.
리투아니아-에스토니아 관계는 리투아니아와 에스토니아 간의 양자 관계를 의미한다. 리투아니아는 탈린에 대사관을 두고 있으며, 에스토니아는 빌뉴스에 대사관을 두고 있다. 양국은 모두 발트 지방에 위치해 있으며, 유럽 연합(EU)과 북대서양 조약 기구(NATO)의 정회원국이다.
리투아니아인의 튜턴 기사단에 대한 적극적인 투쟁은 리보니아 기사단이 에스토니아인 (및 라트비아인)을 예속시키는 것을 막았으며, 이들의 저항을 고무시켰다. 리투아니아가 승리를 거둔 1236년의 사울레 전투는 사레마섬 주민들의 봉기를 촉발시켰으며, 1260년의 두르베 전투에서는 다른 에스토니아인들의 저항도 이끌어냈다. 1270년, 에스토니아 서부에서 벌어진 카루세 전투에서는 리투아니아군이 북에스토니아에서 온 리보니아계 독일군과 덴마크군을 격파하였다. 1561년, 남에스토니아는 빌뉴스 조약에 따라 리투아니아 대공국에 양도 및 병합되었으며, 1569년부터 1629년까지는 폴란드-리투아니아 연방의 자치령인 우즈다우구비스 공국에 속했다.
리투아니아와 에스토니아는 1921년 3월 2일, 공식적으로 외교 관계를 수립하였다. 제2차 세계 대전 이후 소련의 점령이 이어지면서 양국은 망명 중 외교 공관 활동을 계속하였다. 독립이 회복된 이후, 1991년 6월 16일에 양국 간 외교 관계가 사실상 재수립되었다.
양국 간의 많은 협정들은 라트비아를 포함한 발트 3국 간의 3자 협정 형태로 체결되었다.
2004년, 1992년에 체결된 발트 3국 간의 자유 무역 협정은 세 나라가 유럽 연합에 가입함에 따라 대체되었다.
2017년에는 리투아니아와 에스토니아가 라트비아와 함께 철도 협정을 체결하였으며, 이 협정은 향후 발트 3국 간 고속철도 건설을 위한 전제 조건 중 하나로 간주된다.
매니코어 프로세서(manycore processor)는 높은 수준의 병렬 처리를 위해 설계된 특별한 종류의 멀티 코어 프로세서로, 수십 개에서 수천 개 이상의 단순하고 독립적인 프로세서 코어를 포함한다. 매니코어 프로세서는 임베디드 시스템과 고성능 컴퓨팅 분야에서 광범위하게 사용된다.
멀티코어 아키텍처와의 대조.
매니코어 프로세서는 멀티 코어 프로세서와 달리 처음부터 높은 수준의 명시적 병렬성과 지연 시간 및 낮은 단일 스레드 성능을 희생하면서도 높은 처리량(또는 낮은 전력 소비)을 위해 최적화되었다.
반면, 광범위한 범주의 멀티 코어 프로세서는 일반적으로 병렬 및 직렬 코드를 모두 효율적으로 실행하도록 설계되었으며, 따라서 높은 단일 스레드 성능에 더 중점을 둔다(예: 비순차적 명령어 처리, 더 깊은 파이프라인, 더 많은 슈퍼스칼라 실행 장치, 더 크고 일반적인 캐시에 더 많은 실리콘을 할당하고 공유 메모리를 사용). 이러한 기술은 단일 스레드에서 내재된 병렬성을 파악하는 데 런타임 자원을 투입한다. 이들은 단일 코어 프로세서에서 (하위 호환성을 유지하며) 지속적으로 발전해 온 시스템에 사용된다. 이들은 일반적으로 '소수의' 코어(예: 2, 4, 8)를 가지며, 이기종 시스템에서 매니코어 가속기(예: GPU)로 보완될 수 있다.
캐시 일관성은 멀티코어 프로세서의 확장성을 제한하는 문제이다. 매니코어 프로세서는 메시지 전달, 스크래치패드 메모리, DMA, 분할 전역 주소 공간 또는 읽기 전용/비일관성 캐시와 같은 방법을 통해 이를 우회할 수 있다. 네트워크 온 칩과 로컬 메모리를 사용하는 매니코어 프로세서는 소프트웨어에게 태스크의 공간적 레이아웃을 명시적으로 최적화할 기회를 제공한다(예: 트루노스를 위해 개발된 툴링에서 볼 수 있듯이).
매니코어 프로세서는 고성능 컴퓨팅에서 유래한 클러스터 및 벡터 프로세서와 같은 기술과 (개념적으로) 더 많은 공통점을 가질 수 있다.
GPU는 여러 셰이더 처리 장치를 가지며, 고도로 병렬적인 코드에만 적합한(높은 처리량, 그러나 매우 낮은 단일 스레드 성능) 매니코어 프로세서의 한 형태로 간주될 수 있다.
100만 개 이상의 CPU 코어를 가진 특정 매니코어 컴퓨터.
멀티코어 프로세서로 구축된 많은 컴퓨터들이 100만 개 이상의 개별 CPU 코어를 가지고 있다. 다음은 그 예시이다:
5백만 개 이상의 CPU 코어를 가진 특정 컴퓨터.
꽤 많은 슈퍼컴퓨터가 5백만 개 이상의 CPU 코어를 가지고 있다. 코프로세서, 예를 들어 GPU가 함께 사용될 경우 해당 코어는 코어 수에 포함되지 않으므로, 더 많은 컴퓨터가 이러한 목표를 달성할 수 있다.
컴퓨터 구조에서 트랜스포트 트리거드 아키텍처(Transport triggered architecture, TTA)는 프로그램이 프로세서의 내부 전송 버스를 직접 제어하는 프로세서 설계의 한 종류이다. 계산은 데이터 전송의 부작용으로 발생한다. 즉, 기능 장치의 트리거 포트에 데이터를 기록하면 기능 장치가 계산을 시작하도록 트리거된다. 이는 순환 배열에서 일어나는 것과 유사하다. 모듈식 구조로 인해 TTA는 맞춤형 데이터패스를 갖지만 고정 기능 하드웨어 가속기의 유연성 부족과 설계 비용이 없는 응용 분야별 명령어 집합 프로세서(ASIP)에 이상적인 프로세서 템플릿이다.
일반적으로 트랜스포트 트리거드 프로세서는 여러 전송 버스와 버스에 연결된 여러 기능 장치를 가지며, 이는 명령어 수준 병렬성을 위한 기회를 제공한다. 병렬성은 프로그래머가 정적으로 정의한다. 이러한 측면(그리고 분명히 큰 명령어 워드 폭으로 인해)에서 TTA 아키텍처는 매우 긴 명령어 워드(VLIW) 아키텍처와 유사하다. TTA 명령어 워드는 여러 슬롯(버스당 한 슬롯)으로 구성되며, 각 슬롯은 해당 버스에서 발생하는 데이터 전송을 결정한다. 세분화된 제어는 기존 프로세서에서는 불가능한 일부 최적화를 허용한다. 예를 들어, 소프트웨어는 레지스터를 사용하지 않고 기능 장치 간에 데이터를 직접 전송할 수 있다.
트랜스포트 트리거링은 일반적으로 프로그래머에게 숨겨진 일부 마이크로아키텍처 세부 사항을 노출한다. 이는 프로세서의 제어 논리를 크게 단순화한다. 일반적으로 런타임에 수행되는 많은 결정이 컴파일 타임에 고정되기 때문이다. 그러나 이는 한 TTA 프로세서용으로 컴파일된 바이너리가 아키텍처에 작은 차이라도 있다면 재컴파일 없이는 다른 프로세서에서 실행되지 않는다는 것을 의미하기도 한다. 바이너리 비호환성 문제는 전체 문맥 전환을 구현하는 복잡성 외에도 TTA를 일반 목적 컴퓨팅보다 임베디드 시스템에 더 적합하게 만든다.
모든 단일 명령어 집합 컴퓨터 아키텍처 중 TTA 아키텍처는 이를 기반으로 프로세서가 구축된 몇 안 되는 아키텍처 중 하나이며, 이를 기반으로 프로세서가 상업적으로 판매된 유일한 아키텍처이다.
VLIW 아키텍처와 비교한 이점.
TTA는 "노출된 데이터패스" VLIW 아키텍처로 볼 수 있다. VLIW는 연산을 사용하여 프로그래밍되는 반면, TTA는 연산 실행을 여러 이동 연산으로 분할한다. 낮은 수준의 프로그래밍 모델은 표준 VLIW에 비해 여러 가지 이점을 제공한다. 예를 들어, TTA 아키텍처는 VLIW보다 간단한 레지스터 파일을 사용하여 더 많은 병렬성을 제공할 수 있다. 프로그래머가 피연산자와 결과 데이터 전송의 타이밍을 제어하므로 레지스터 파일(RF)의 복잡성(입력 및 출력 포트 수)은 여러 병렬 명령어의 최악의 발행/완료 시나리오에 따라 확장될 필요가 없다.
전송 프로그래밍을 통해 가능한 중요한 고유 소프트웨어 최적화는 소프트웨어 바이패스라고 불린다. 소프트웨어 바이패스의 경우, 프로그래머는 데이터를 다음 기능 장치의 피연산자 포트로 직접 이동하여 레지스터 파일 쓰기 백을 바이패스한다. 이 최적화를 적극적으로 적용하면 결과를 레지스터 파일로 전송하는 원래 이동을 완전히 제거하여 레지스터 파일 포트 압력을 줄이고 범용 레지스터를 다른 임시 변수에 사용할 수 있다. RF 하드웨어의 필요한 복잡성을 단순화하는 것 외에도 감소된 레지스터 압력은 상당한 CPU 에너지 절약으로 이어질 수 있으며, 특히 모바일 임베디드 시스템에서 중요한 이점이다.
TTA 프로세서는 독립적인 기능 장치와 레지스터 파일로 구축되며, 이들은 전송 버스와 소켓으로 연결된다.
기능 장치.
각 기능 장치는 하나 이상의 연산을 구현하며, 이는 간단한 정수 덧셈에서 복잡하고 임의의 사용자 정의 응용 분야별 계산에 이르는 기능을 구현한다. 연산의 피연산자는 기능 장치 포트를 통해 전송된다.
각 기능 장치는 독립적인 파이프라인을 가질 수 있다. 기능 장치가 완전히 파이프라인화된 경우, 완료하는 데 여러 클럭 사이클이 걸리는 새로운 연산은 매 클럭 사이클마다 시작될 수 있다. 반면에 파이프라인은 이전 연산이 아직 실행 중인 동안 항상 새로운 연산 시작 요청을 수락하지 않을 수도 있다.
데이터 메모리 접근 및 프로세서 외부와의 통신은 특수 기능 장치를 사용하여 처리된다. 메모리 접근 연산을 구현하고 메모리 모듈에 연결되는 기능 장치는 종종 로드/스토어 유닛이라고 불린다.
제어 장치는 프로그램 실행을 제어하는 특수한 기능 장치이다. 제어 장치는 실행할 명령어를 가져오기 위해 명령어 메모리에 접근할 수 있다. 실행 중인 프로그램이 실행(점프)을 프로그램의 임의의 위치로 전송할 수 있도록, 제어 장치는 제어 흐름 연산을 제공한다. 제어 장치는 일반적으로 명령어를 가져오고, 디코딩하고, 실행하는 단계를 포함하는 명령어 파이프라인을 가지고 있다.
레지스터 파일.
레지스터 파일에는 프로그램에서 변수를 저장하는 데 사용되는 범용 레지스터가 포함되어 있다. 기능 장치와 마찬가지로 레지스터 파일에도 입출력 포트가 있다. 읽기 및 쓰기 포트의 수, 즉 동일한 클럭 사이클에 여러 레지스터를 읽고 쓸 수 있는 기능은 각 레지스터 파일마다 다를 수 있다.
전송 버스와 소켓.
상호 연결 아키텍처는 소켓을 통해 기능 장치 포트에 연결되는 전송 버스로 구성된다. 연결 비용 때문에 장치(기능 장치 및 레지스터 파일) 간 연결 수를 줄이는 것이 일반적이다. TTA는 각 장치 출력 포트에서 모든 장치 입력 포트로 가는 경로가 있는 경우 완전히 연결되었다고 말한다.
소켓은 소켓의 버스-포트 연결 중 어느 것이 언제든지 활성화될지 선택하여 TTA 프로세서를 프로그래밍하는 수단을 제공한다. 따라서 클럭 사이클에 발생하는 데이터 전송은 각 버스에 대해 활성화될 소스 및 대상 소켓/포트 연결을 정의하여 프로그래밍할 수 있다.
일부 TTA 구현은 조건부 실행을 지원한다.
조건부 실행은 가드의 도움으로 구현된다. 각 데이터 전송은 레지스터(종종 1비트 조건부 레지스터)와 버스에 연결된 가드에 의해 조건부로 설정될 수 있다. 가드된 레지스터의 값이 거짓(0)으로 평가되는 경우, 가드가 연결된 버스에 대해 프로그래밍된 데이터 전송은 스쿼시된다. 즉, 대상에 기록되지 않는다. 무조건적인 데이터 전송은 어떤 가드에도 연결되지 않으며 항상 실행된다.
TTA 프로세서를 포함한 모든 프로세서는 프로그램 카운터를 변경하는 제어 흐름 명령어를 포함하며, 이는 서브루틴, if-then-else, for-loop 등을 구현하는 데 사용된다. TTA 프로세서의 어셈블리어는 일반적으로 무조건 분기(JUMP), 조건부 상대 분기(BNZ), 서브루틴 호출(CALL), 조건부 반환(RETNZ) 등 다른 프로세서의 해당 어셈블리어 명령어와 동일하게 보이는 제어 흐름 명령어를 포함한다.
TTA 머신의 다른 모든 연산과 마찬가지로 이러한 명령어는 특수 기능 장치에 대한 "이동" 명령어로 구현된다.
sTTAck 및 첫 번째 MOVE 프로토타입과 같이 조건부 실행을 지원하는 TTA 구현은 이러한 제어 흐름 명령어 대부분을 프로그램 카운터에 대한 조건부 이동으로 구현할 수 있다.
맥심 인터그레이티드 MAXQ와 같이 무조건적인 데이터 전송만 지원하는 TTA 구현은 일반적으로 프로그램 카운터에 단단히 연결되어 다양한 대상 주소에 응답하는 특수 기능 장치를 가지고 있다. 각 주소는 "이동"의 대상으로 사용될 때 프로그램 카운터에 다른 영향을 미친다. 각 "상대 분기 &lt;조건&gt;" 명령어는 각 조건에 대해 다른 대상 주소를 가지며, 다른 대상 주소는 CALL, RETNZ 등에 사용된다.
더 전통적인 프로세서 아키텍처에서는 프로세서가 일반적으로 실행되는 연산과 그 피연산자를 정의함으로써 프로그래밍된다. 예를 들어, RISC 아키텍처의 덧셈 명령어는 다음과 같을 수 있다.
이 예제 연산은 범용 레지스터 r1과 r2의 값을 더하고 그 결과를 레지스터 r3에 저장한다. 대략적으로, 프로세서에서 명령어의 실행은 아마도 명령어를 제어 신호로 변환하여 상호 연결 네트워크 연결과 기능 장치를 제어하는 결과를 낳을 것이다. 상호 연결 네트워크는 레지스터 r1과 r2의 현재 값을 덧셈 연산을 실행할 수 있는 기능 장치(종종 산술 논리 장치인 ALU라고 불림)로 전송하는 데 사용된다. 마지막으로, 제어 신호가 ALU에서 덧셈 연산을 선택하고 트리거하며, 그 결과는 레지스터 r3으로 다시 전송된다.
TTA 프로그램은 연산을 정의하지 않고, 피연산자 값을 읽고 쓰는 데 필요한 데이터 전송만 정의한다. 연산 자체는 연산의 트리거링 피연산자에 데이터를 기록함으로써 트리거된다. 따라서 연산은 트리거링 데이터 전송의 부작용으로 실행된다. 그러므로 TTA에서 덧셈 연산을 실행하려면 세 가지 데이터 전송 정의(이동이라고도 함)가 필요하다. 이동은 전송 버스에서 발생하는 데이터 전송의 종점을 정의한다. 예를 들어, 이동은 기능 장치 F의 포트 1에서 레지스터 파일 R의 레지스터 인덱스 2로의 데이터 전송이 버스 B1에서 발생해야 한다고 명시할 수 있다. 대상 프로세서에 여러 버스가 있는 경우, 각 버스는 동일한 클럭 사이클에 병렬로 활용될 수 있다. 따라서 동일한 명령어에 여러 데이터 전송을 스케줄링하여 데이터 전송 수준 병렬성을 활용할 수 있다.
덧셈 연산은 TTA 프로세서에서 다음과 같이 실행될 수 있다.
두 번째 이동은 ALU라고 불리는 기능 장치의 두 번째 피연산자에 쓰는 것으로, 덧셈 연산을 트리거한다. 이는 'add'의 실행 지연 시간 후에 'result' 출력 포트에서 덧셈의 결과를 사용할 수 있게 한다.
ALU와 관련된 포트는 누산기 역할을 하여 기본 TTA를 추상화하는 매크로 명령어를 생성할 수 있다s:
lda r1 ; "ALU 로드": 값을 ALU 피연산자 1로 이동
add r2 ; 더하기: 값을 더하기 트리거로 이동
sta r3 ; "ALU 저장": 값을 ALU 결과에서 이동
프로그래머에게 보이는 연산 지연 시간.
TTA의 주요 철학은 복잡성을 하드웨어에서 소프트웨어로 옮기는 것이다. 이로 인해 프로그래머에게 여러 추가적인 위험이 발생한다. 그 중 하나는 지연 슬롯이며, 이는 기능 장치의 프로그래머에게 보이는 연산 지연 시간이다. 타이밍은 전적으로 프로그래머의 책임이다. 프로그래머는 결과가 너무 일찍 읽히거나 너무 늦게 읽히지 않도록 명령어를 스케줄링해야 한다. 결과가 너무 일찍 읽히는 경우 프로세서를 잠그는 하드웨어 감지 기능은 없다. 예를 들어, 지연 시간이 1인 add 연산과 지연 시간이 3인 mul 연산을 가진 아키텍처를 생각해보자. add 연산을 트리거할 때 다음 명령어(다음 클럭 사이클)에서 결과를 읽을 수 있지만, mul의 경우 결과를 읽기 전에 두 명령어를 기다려야 한다. 결과는 트리거링 명령어 이후 세 번째 명령어에 사용할 준비가 된다.
결과를 너무 일찍 읽으면 이전에 트리거된 연산의 결과를 읽게 되거나, 기능 장치에서 이전에 트리거된 연산이 없는 경우 읽은 값이 정의되지 않는다. 반면에, 다음 연산 결과가 아직 읽히지 않은 출력 포트의 결과를 덮어쓰지 않도록 결과를 충분히 일찍 읽어야 한다.
레지스터 파일 내용 외에도 기능 장치 파이프라인 레지스터 내용 및 기능 장치 입출력 포트를 포함하는 프로그래머에게 보이는 프로세서 컨텍스트가 풍부하기 때문에 외부 인터럽트 지원에 필요한 컨텍스트 저장은 TTA 프로세서에서 구현하기 복잡하고 비용이 많이 들 수 있다. 따라서 인터럽트는 일반적으로 TTA 프로세서에서 지원되지 않고, 그들의 작업은 외부 하드웨어(예: I/O 프로세서)에 위임되거나 폴링과 같은 대체 동기화/통신 메커니즘을 사용하여 그 필요성이 회피된다.
TLS 가속(TLS acceleration, 구 명칭: SSL 가속, SSL acceleration)은 전송 계층 보안(TLS) 및 그 전신인 보안 소켓 계층(SSL)을 위한 프로세서 집약적인 공개 키 암호화를 하드웨어 가속기로 오프로드하는 방식이다.
일반적으로 이는 컴퓨터의 PCI 슬롯에 연결되어 SSL 처리의 많은 부분을 처리할 수 있는 하나 이상의 코프로세서를 포함하는 별도의 카드를 갖는 것을 의미한다.
TLS 가속기는 상용 CPU를 사용할 수도 있지만, 대부분은 맞춤형 ASIC 및 RISC 칩을 사용하여 대부분의 어려운 계산 작업을 수행한다.
TLS 가속의 원리.
TLS 세션에서 가장 계산 비용이 많이 드는 부분은 TLS 핸드셰이크이다. 여기서 TLS 서버(일반적으로 웹 서버)와 TLS 클라이언트(일반적으로 웹 브라우저)는 연결의 보안을 설정하는 여러 매개변수에 동의한다. TLS 핸드셰이크 동안 서버와 클라이언트는 세션 키(주어진 세션 기간 동안 사용되는 대칭 키)를 설정하지만, TLS 핸드셰이크 메시지 자체의 암호화 및 서명은 비대칭 키를 사용하여 수행되며, 이는 세션 데이터의 암호화/복호화에 사용되는 대칭 암호화보다 더 많은 계산 능력을 요구한다.
일반적으로 하드웨어 TLS 가속기는 TLS 핸드셰이크 처리를 오프로드하고, 실제 TLS 데이터 교환의 덜 집약적인 대칭 키 암호는 서버 소프트웨어에 맡기지만, 일부 가속기는 모든 TLS 작업을 처리하고 TLS 연결을 종료하여 서버가 해독된 연결만 보게 한다. 때로는 데이터 센터에서 리버스 프록시 구성으로 TLS 가속을 위한 전용 서버를 사용하기도 한다.
중앙 프로세서 지원.
최신 X86 CPU는 2008년 3월 인텔이 제안한 AES-NI를 사용하여 하드웨어에서 고급 암호화 표준(AES) 인코딩 및 디코딩을 지원한다.
올위너 테크놀로지는 자사의 A10, A20, A30 및 A80 ARM 시스템 온 칩 시리즈에 하드웨어 암호화 가속기를 제공하며, 모든 ARM CPU는 이후의 ARMv8 아키텍처에서 가속 기능을 갖는다. 이 가속기는 RSA 공개 키 알고리즘, 여러 널리 사용되는 대칭 키 암호, 암호화 해시 함수, 그리고 암호학적으로 안전한 의사 난수 생성기를 제공한다.
집적 회로 설계에서 하드웨어 에뮬레이션(Hardware emulation)은 하나 이상의 하드웨어(일반적으로 설계 중인 시스템)의 동작을 다른 하드웨어, 일반적으로 특수 목적 에뮬레이션 시스템으로 모방하는 과정이다. 에뮬레이션 모델은 일반적으로 하드웨어 기술 언어(예: 베릴로그) 소스 코드를 기반으로 하며, 이는 에뮬레이션 시스템에서 사용되는 형식으로 컴파일된다. 목표는 일반적으로 설계 중인 시스템의 디버깅 및 기능 검증이다. 종종 에뮬레이터는 아직 구축되지 않은 칩 대신 작동하는 대상 시스템에 연결할 수 있을 만큼 충분히 빠르므로 전체 시스템을 실제 데이터로 디버깅할 수 있다. 이것은 인 서킷 에뮬레이션의 특정 사례이다.
때로는 하드웨어 에뮬레이션이 소프트웨어 에뮬레이션의 기능을 지원하는 하드웨어 프로세서가 있는 확장 카드와 같은 하드웨어 장치와 혼동될 수 있다. 예를 들어, x86 칩이 있는 오래된 도터보드를 사용하여 x86 운영 체제가 다른 프로세서 제품군의 마더보드에서 실행될 수 있도록 하는 경우가 있다.
실리콘 집적 회로의 재설계 및 스테핑의 가장 큰 부분은 설계 과정의 RTL 단계에서 의도치 않게 도입된 기능 오류 및 버그로 인한 것이다. 따라서 포괄적인 기능 검증은 개발 비용을 줄이고 제품을 적시에 출시하는 데 중요하다. 설계의 기능 검증은 대부분 논리 시뮬레이션 및 필드 프로그래머블 게이트 어레이(FPGA) 프로토타이핑을 사용하여 수행된다. 각각 장단점이 있으며 종종 둘 다 사용된다. 논리 시뮬레이션은 쉽고, 정확하며, 유연하고, 저렴하다. 그러나 시뮬레이션은 종종 대규모 설계에 충분히 빠르지 않으며, 하드웨어 설계를 대상으로 애플리케이션 소프트웨어를 실행하기에는 거의 항상 너무 느리다. FPGA 기반 프로토타입은 빠르고 저렴하지만, 대규모 설계를 여러 FPGA에 구현하는 데 필요한 시간은 매우 길 수 있으며 오류가 발생하기 쉽다. 설계 결함을 수정하기 위한 변경 사항도 구현하는 데 오랜 시간이 걸리며 보드 배선 변경이 필요할 수 있다. 전통적인 공급업체 도구를 사용하면 FPGA 프로토타입은 디버깅 기능이 거의 없으며, FPGA 내부의 신호를 실시간으로 탐색하는 것은 매우 어렵고, 프로브를 이동하기 위해 FPGA를 다시 컴파일하는 데 너무 오랜 시간이 걸린다. 이는 신호 가시성 제한을 제거하는 고급 FPGA 프로토타입 디버그 도구의 등장으로 변화하고 있다. 일반적인 절충안은 버그와 수정이 빈번한 검증 과정 초기에 시뮬레이션을 사용하고, 설계가 기본적으로 완료되고 나머지 시스템 수준 버그를 발견하기 위한 충분한 테스트를 위해 속도가 필요한 개발 주기 말기에 프로토타이핑을 사용하는 것이다. FPGA 프로토타이핑은 소프트웨어 테스트에도 인기가 있다.
시뮬레이션 가속은 시뮬레이션의 성능 단점을 어느 정도 해결할 수 있다. 여기서는 설계가 하드웨어 가속기에 매핑되어 훨씬 빠르게 실행되고 테스트벤치(및 모든 행동 설계 코드)는 워크스테이션의 시뮬레이터에서 계속 실행된다. 고대역폭, 저지연 채널이 워크스테이션을 가속기에 연결하여 테스트벤치와 설계 간에 신호 데이터를 교환한다. 암달의 법칙에 따라 체인에서 가장 느린 장치가 달성 가능한 속도를 결정한다. 일반적으로 이는 시뮬레이터의 테스트벤치이다. 매우 효율적인 테스트벤치(C 또는 트랜잭션 기반으로 작성됨)의 경우 채널이 병목 현상이 될 수 있다. 경우에 따라 트랜잭션 수준 테스트벤치는 에뮬레이션되는 설계에 "실시간" 자극만큼 많은 데이터를 공급할 수 있다.
인 서킷 에뮬레이션은 FPGA 프로토타이핑의 구현 시간을 어느 정도 개선하며, 포괄적이고 효율적인 디버깅 기능을 제공한다. 에뮬레이션은 FPGA 프로토타입($75K)에 비해 실행 속도와 높은 비용($1M 이상)을 희생한다. 다른 관점에서 에뮬레이션을 보면, 시뮬레이션된 테스트벤치 대신 "실시간" 자극을 대체함으로써 가속의 성능을 향상시킨다. 이 자극은 대상 시스템(개발 중인 제품) 또는 테스트 장비에서 올 수 있다. 시뮬레이션 속도의 10,000배에서 100,000배에 달하는 에뮬레이션은 포괄적인 하드웨어 디버그 환경을 제공하면서 애플리케이션 소프트웨어를 테스트할 수 있도록 한다.
시뮬레이션 vs. 에뮬레이션/프로토타이핑 디버깅.
시뮬레이션과 프로토타이핑은 두 가지 다른 실행 스타일을 포함한다. 시뮬레이션은 RTL 코드를 직렬로 실행하는 반면 프로토타입은 완전히 병렬로 실행한다. 이는 디버깅의 차이로 이어진다. 시뮬레이션에서:
프로토타입으로:
가속 및 에뮬레이션은 RTL 실행 및 디버깅 측면에서 프로토타이핑 및 실리콘과 더 유사하며, 전체 설계가 실리콘에서와 같이 동시에 실행되기 때문이다. 동일한 하드웨어가 종종 시뮬레이션 가속과 인 서킷 에뮬레이션을 모두 제공하는 데 사용되므로, 이러한 시스템은 이 두 가지 매우 다른 디버깅 스타일을 혼합하여 제공한다.
하이엔드 하드웨어 에뮬레이터는 논리 시뮬레이터에서 찾을 수 있는 많은 기능을 갖춘 디버깅 환경을 제공하며, 경우에 따라 디버깅 기능을 능가하기도 한다.
에뮬레이션 및 2상태 논리.
시뮬레이션과 가속 및 에뮬레이션의 또 다른 차이점은 가속기가 구현에 하드웨어를 사용한다는 결과이다. 즉, 패브리케이션될 때 실리콘이 작동하는 방식과 동일하게 두 가지 논리 상태만 가진다. 이는 다음을 의미한다.
이러한 작업은 논리 시뮬레이션 또는 정적 타이밍 분석 도구를 사용하여 적절하게 수행된다.
에뮬레이션 대 프로토타이핑.
에뮬레이터와 FPGA 프로토타이핑 시스템 간의 핵심적인 전통적인 차이점은 에뮬레이터가 풍부한 디버그 환경을 제공하는 반면, 프로토타이핑 시스템은 디버그 기능이 거의 없거나 전혀 없으며 주로 설계가 디버그된 후 시스템 분석 및 소프트웨어 개발을 위해 여러 복사본을 만드는 데 사용된다는 점이었다. 작은 FPGA LUT 영향으로 완전한 RTL 신호 가시성을 가능하게 하고, 깊은 캡처 깊이를 허용하며, 다중 칩 및 클록 도메인 분석을 제공하여 에뮬레이터와 비견할 만한 효율적인 디버깅을 가능하게 하는 새로운 도구들이 등장하고 있다.
지오메트리 파이프라인(geometry pipelines), 즉 기하 파이프라인에서 수행되는 것과 같은 모델링 기본 요소의 기하학적 조작은 기하학적 모델을 기반으로 이미지 생성을 수행하는 컴퓨터 그래픽스 시스템의 첫 번째 단계이다. 지오메트리 파이프라인은 원래 소프트웨어로 구현되었지만, 특히 1980년대 초 초고밀도 집적 회로 (VLSI)의 출현 이후 하드웨어 구현에 매우 적합해졌다. 1981년경 스탠퍼드 대학교의 제임스 H. 클라크와 마크 해나(Marc Hannah)가 개발한 지오메트리 엔진이라는 장치는 현대 이미지 합성 래스터 디스플레이 시스템에서 점점 더 상품화되는 기능의 분수령이 되었다.
기하 변환은 고전적인 기하 기반 그래픽 이미지 렌더링 파이프라인의 첫 번째 단계의 일부로 다각형 또는 모델링 프리미티브로 사용되는 다른 기하 객체의 정점에 적용된다. 기하 계산은 다각형을 변환하거나 표면 노멀을 복구하는 데 사용될 수 있으며, 이후 렌더링에 사용되는 조명 및 셰이딩 계산을 수행하는 데 사용될 수 있다.
지오메트리 파이프라인의 하드웨어 구현은 초기 에반스 앤 서덜랜드(Evans &amp; Sutherland)의 Picture System에서 소개되었지만, 실리콘 그래픽스 (SGI)에서 출시한 다양한 그래픽 시스템 제품에 나중에 적용되면서 더 넓은 인정을 받았다. 초기 SGI 기하 하드웨어는 모든 조명 및 셰이딩이 별도의 하드웨어 구현 단계에서 처리되는 간단한 모델 공간에서 스크린 공간 뷰잉 변환을 수행했다. 나중에는 RealityEngine과 같은 훨씬 더 높은 성능의 응용 프로그램에서 렌더링 지원의 일부를 수행하는 데도 적용되기 시작했다.
최근에는 1990년대 후반부터 복잡한 장면의 조작 및 렌더링을 수행하는 데 필요한 하드웨어 지원이 소비자 시장에 접근 가능해졌다.
엔비디아 및 AMD 그래픽스 (이전 ATI)와 같은 회사들이 이 분야의 현재 선두 하드웨어 공급업체이다. 엔비디아의 지포스 그래픽 카드 라인은 소비자 PC 시장에서 완전한 OpenGL 및 Direct3D 하드웨어 기하 처리를 지원하는 최초의 제품이었으며, 렌디션 베리테(Rendition Verite)와 같은 일부 초기 제품은 독점 프로그래밍 인터페이스를 통해 하드웨어 기하 처리를 통합했다. 전반적으로 3Dfx, 매트록스 등의 초기 그래픽 가속기는 기하 처리를 위해 CPU에 의존했다.
이 주제는 현대 컴퓨터 그래픽스의 기술적 기초의 일부이며, 컴퓨터 과학 교육의 일부로 학부 및 대학원 수준 모두에서 가르치는 포괄적인 주제이다.
어떠한 GPU에서든 버텍스 파이프라인(vertex pipeline), 즉 정점 파이프라인의 기능은 지오메트리 데이터(일반적으로 벡터 점으로 제공됨)를 가져와 필요에 따라 고정 기능 프로세스(초기 DirectX) 또는 정점 셰이더 프로그램(후기 DirectX)으로 작업하고, 장면의 모든 3D 데이터 포인트를 2D 평면으로 생성하여 컴퓨터 모니터에 표시하는 것이다.
불필요한 데이터가 렌더링 파이프라인을 통과하는 것을 막아 불필요한 작업을 줄일 수 있다(뷰 볼륨 클리핑 및 후면 제거라고 불림). 정점 엔진이 지오메트리 작업을 마치면, 모든 2D 계산 데이터는 텍스처링 및 프래그먼트 셰이딩과 같은 추가 처리를 위해 픽셀 엔진으로 전송된다.
DirectX 9c부터 정점 프로세서는 Direct X API 하에서 정점 처리를 프로그래밍하여 다음을 수행할 수 있다.
비디오코어(VideoCore)는 알파모자이크 주식회사가 개발하여 현재 브로드컴이 소유하고 있는 저전력 모바일 멀티미디어 프로세서 시리즈이다. 알파모자이크는 첫 버전을 2차원 DSP 아키텍처로 판매하여 저전력 사용량을 유지하면서도 다양한 멀티미디어 코덱을 소프트웨어로 디코딩(및 인코딩)할 수 있을 만큼 유연하고 효율적이라고 홍보했다. 반도체 지적 재산 코어(SIP 코어)는 현재까지 브로드컴 SoC에서만 발견되었다.
멀티미디어 시스템 제약 사항.
모바일 멀티미디어 기기는 긴 배터리 수명을 위해 많은 고속 비디오 처리가 필요하지만 저전력으로 작동해야 한다. ARM 프로세서 코어는 와트당 IPS 수치가 높지만(따라서 휴대폰 시장을 지배하고 있지만) 완벽한 시스템을 위해서는 비디오 가속 보조 프로세서와 디스플레이 컨트롤러가 필요하다. 이러한 칩들 사이에서 고속으로 이동하는 데이터의 양은 더 높은 전력 소비로 이어진다.
특수 보조 프로세서는 대기 시간보다 처리량(더 많은 코어와 데이터 병렬 처리, 하지만 더 낮은 클럭 속도)에 최적화될 수 있으며, 미디어 처리를 위해 설계된 명령어 세트 및 메모리 아키텍처(예: 채도 연산 및 특수 데이터 형식 처리)를 가질 수 있다.
3D 엔진.
라즈베리 파이 1, 2, 3에서 발견되는 비디오코어IV-AG100-R은 OpenGL ES 2.0 및 OpenVG 1.1을 완벽하게 지원하는 것으로 문서화되어 있다.
3D 엔진은 다양한 서브시스템으로 구성되어 있으며, 그 중 가장 많은 것은 QPU이다. QPU는 16방향 단일 명령 다중 데이터(SIMD) 프로세서이다.
브로드컴의 VideoCore® IV 3D 아키텍처 참조 가이드에 따르면 "각 프로세서에는 단일 명령 사이클 대기 시간으로 곱셈 및 비곱셈 연산을 병렬로 수행하는 두 개의 벡터 부동 소수점 ALU가 있다. 내부적으로 QPU는 4개의 사이클에 걸쳐 4배로 다중화된 4방향 SIMD 프로세서로, 특히 픽셀 쿼드 스트림을 처리하는 데 적합하다."
이 문서는 "QPU는 슬라이스라고 불리는 최대 4개의 그룹으로 구성되며, 특정 공통 자원을 공유한다"고 계속한다. cf. 정점 및 셰이더.
이러한 "슬라이스"는 대략 AMD의 컴퓨트 유닛에 해당한다.
적어도 VC 4(예: 라즈베리 파이)는 S3 텍스처 압축 (S3TC)을 지원하지 않는다. 아마도 적응형 스케일링 텍스처 압축 (ASTC)도 지원하지 않을 것이다.
비디오 압축 알고리즘.
현재 널리 사용되는 비디오 압축 알고리즘인 H.263, H.264/MPEG-4 AVC, MPEG-4, MPEG-2, MPEG-1, H.265, 달라, 테오라, VP8 및 VP9 중에서 브로드컴의 비디오코어 제품은 일부 작업의 하드웨어 가속을 지원한다. 일부 경우에는 특정 해상도(예: 720p 또는 1080p) 및 특정 프레임 속도(예: 초당 30 또는 60 프레임)까지 디코딩만, 압축만 또는 둘 다를 지원한다.
비디오코어 I 기반 VC01은 SCH-V540, SCH-V4200, SCH-V490을 포함한 다양한 삼성 휴대폰에 비디오 및 멀티미디어 기능을 제공한다.
비디오코어 II 기반 VC02 / BCM2722 프로세서는 애플의 5세대 아이팟에 비디오 기능을 제공한다.
비디오코어 III 기반 BCM2727 프로세서는 노키아 N8에 비디오, 정지 이미지 및 3D 그래픽 기능을 제공한다.
비디오코어 IV BCM2763 프로세서는 1080p 인코딩 및 디코딩 지원, 더 높은 해상도 카메라 지원, 더 빠른 2D 및 3D 그래픽을 모두 매우 낮은 전력으로 제공하여 비디오코어 III를 개선했다. 이 프로세서는 노키아 808 퓨어뷰, 일부 로쿠 하드웨어 버전 및 라즈베리 파이 (버전 1/2에 해당하는 2835/2836 모델)에 사용된다.
비디오코어 IV BCM28155 프로세서는 BCM28155 칩셋에서 듀얼 코어 ARM Cortex-A9 CPU와 함께 1080p 인코딩 및 디코딩, 개선된 2D 및 3D 그래픽을 지원한다. 삼성 갤럭시 SII 플러스, 삼성 갤럭시 그랜드, 삼성 갤럭시 코어 플러스, 삼성 갤럭시 S 듀오스 2, 아마존 파이어 TV 스틱에 사용된다.
비디오코어 V BCM7251 프로세서는 2160p60 디코딩 및 트랜스코딩 또는 듀얼 1080p60 인코딩/디코딩을 지원하며, 개선된 코덱 지원(H.265), DDR3 및 DDR4 지원, USB 3.0, PCIe, 기가비트 이더넷 및 802.11ac를 듀얼 코어 ARM Cortex-A15 브라마15 듀얼 코어 CPU에서 제공한다.
비디오코어 제품.
비디오코어 칩은 완전한 애플리케이션을 실행할 수 있다. DSP 칩은 단순히 데이터를 공급하고 수집하기 위해 별도의 프로세서가 필요한 비디오 DSP 칩이 아니다. 비디오코어는 비 DSP 작업에서 최적의 전력 효율을 내지 못할 수도 있지만, 고효율 CPU 코어와 결합될 수 있다. 예를 들어, 일반적인 비 멀티미디어 작업은 32비트 버스 폭 이상을 거의 필요로 하지 않지만, 비디오코어 설계는 여러 개의 광폭 버스 코어를 사용한다.
비디오 디코딩은 BCM 칩을 사용하는 비디오 가속 보드에 오프로드되었다.
블루레이 플레이어는 저전력 비디오 가속기로도 사용할 수 있다.
비디오코어 칩이 보통 ARM 기반 칩과 함께 사용되었다는 점을 고려할 때, 최신 칩에는 비디오코어와 ARM 프로세서가 모두 포함되어 있다.
2014년 2월 28일, 라즈베리 파이 2주년이 되는 날, 브로드컴은 라즈베리 파이 재단과 함께 비디오코어 IV 그래픽 코어의 전체 문서와 3-절 BSD 허가서하에 그래픽 스택의 완전한 소스 공개를 발표했다.
그러나 드라이버의 일부만 오픈 소스로 공개되었으며, 모든 비디오 가속은 독점 GPU용으로 코딩된 펌웨어를 사용하여 수행되었는데, 이는 오픈 소스화되지 않았다. SoC 자체는 부팅 시 비디오코어의 VPU에 로드되는 ThreadX 기반 RTOS에 의해 관리된다.
비디오코어 기반 시스템의 아키텍처 개요는 허먼 헤르미티지가 역설계 및 특허 조사를 기반으로 컴파일했으며, 깃허브에서 확인할 수 있다.
2014년 6월, 엠마 안홀트는 인텔을 떠나 브로드컴으로 이직하여 VC4(비디오코어 4)용 자유 드라이버(DRM/KMS 드라이버 및 갈륨3D 드라이버)를 개발했다. 일주일 후 그녀는 주목할 만한 진전을 보고했다.
자유 라이선스 3D 그래픽 코드는 2014년 8월 29일 메사에 커밋되었으며, 메사 10.3의 일부로 처음 출시되었다.
컴퓨트 커널 프로그래밍.
오픈 소스 커뮤니티는 모든 라즈베리 파이에서 비디오코어 GPU에서 사용자 정의 컴퓨트 커널을 직접 실행하기 위한 V3DLib이라는 C++ 라이브러리를 만들었다. 이를 통해 OpenGL의 그래픽스 지향 API에 국한되지 않는 그래픽 처리 장치 기반 범용 컴퓨팅(GPGPU)이 가능하다.
시장 경쟁자.