https://gall.dcinside.com/mgallery/board/view/?id=xboxconsole&no=3661&_rk=BQK&page=1


이 내용 기반



용어까지 최대한 다 풀어봄



BCPack, Kraken ? 



BCPack = MS가 사용하는 차세대 콘솔에서 사용되는 압축 코덱. 텍스쳐 압축에 특화되어 있으며 약 50% 이상의 압축 효율을 가진다고 알려져있음


Kraken = 소니가 개발한 PS용 범용 압축 코덱. BCPack 이 텍스쳐 압축에 특화되어있다면 Kraken은 보다 범용적인 데이터 압축 목적을 가지고있고, BCPack 에 댔을 때 약 30% 정도의 효율을 가진다고 알려져있음


그놈의 압축, compressed/decompressed 이런게 대체 뭐가 중요하냐? 현세대만 해도 게임 용량이 이젠 기본 50GB를 넘고, 어지간하면 100GB에 육박하고, 심하면 150GB 이상 되는 것들까지 나오는 시대가 되어버렸는데 차세대는 둘 다 커스텀된 NVMe SSD를 사용하고, 스토리지 확장 슬롯도 NVMe SSD로 한정되는 상황임


전세대에선 USB 3.0 케이블을 이용한 외장 HDD/SSD 연결이 자유롭고 간편하고 가격도 크게 부담되지 않았지만 차세대에선 NVMe m.2 SSD, 그것도 콘솔 하드웨어 제조사가 이 장치는 우리 콘솔과 호환된다고 공식 인정하는 제품군에 한해서만 제대로 사용이 가능할 것으로 예측되는 만큼 스토리지 확장에 대한 가격부담이 크게 늘어난 상황임


그런데 한 게임당 150GB, 차세대에선 더 고화질의 텍스쳐와 더 넓은 맵, 더 많은 이펙트 표현과 그래픽 품질 향상이 이루어지려면 그만큼 더 용량이 늘겠지? 한 게임당 100~200GB나 되는 막대한 용량을 차지하게 되면 게임 서너개 깔게 되면 OS, 기타 백그라운드가 잡아먹는 용량 제외한 게임 저장용량을 거의 다 잡아먹히게 되고 유저들에게 비싼 돌을 들여서 추가 스토리지를 사실상 강제로 구입하라고 요구하는 것이나 다름없게 되버림



그래서 차세대에선 훨씬 빠른 속도의 SSD를 사용하면서도, 동시에 압축 기술과 I/O 속도에 중점을 두고 SSD를 최대한 활용하려고 두 제조사 다 열심히 노력함


엑스박스의 경우 BCPack 을 통해 보통 HDD/SSD에서 게임 로딩에 필요한 데이터를 램을 통해 불러오기할때, 가장 많은 용량과 비중을 차지하는 텍스쳐를 집중적으로 압축하고자 했음. 그 결과 텍스쳐 압축에 특화된 BCPack은 압축 효율 약 50% 이상을 보여주었고, 적게는 25%, 많게는 약 70%까지도 차지할 수 있는 전체 데이터에서의 텍스쳐 크기를 효율적으로 압축해내는데 성공함.


물론 데이터는 압축만 해서 되는게 아니라 게임 내에서 필요로 하는 데이터는 빠르게 압축된걸 풀어줘야 하는데, 가끔 게임을 할때 사양이 분명 렉걸릴 사양이 전혀 아닌데도 한번씩 새 지역에 가거나 특정 상황에서나 컷씬 등에서 버벅이는 문제가 바로 이런 문제 때문이라고 볼 수 있음. 압축을 해제하는 작업 자체가 CPU를 거의 3~5코어정도 잡아먹는 미친 부하를 거는데 게임까지 돌리고 있으니 오버헤드가 나고,게임 상에서 조금씩 버벅이고 끊기면서 그 부하량을 감당해가며 로딩해내는 수밖에 없는거임. 


거기다 윈도우의 압축 관련 프로토콜 자체가 워낙 구닥다리라 굉장히 비효율적인 것도 한몫했고, 그래서 차세대 콘솔을 설계할 때 내친김에 이거 잘 되면 윈도에도 적용해보자 하는 마인드로 소프트웨어적 해결책을 시도하면서 콘솔 전용의 하드웨어 해결책도 동시에 준비해보기로 함 



이전에 여기나 플갤이나 다른 사람들이 여러번 설명한 내용이지만 플스는 이 문제를 아예 SSD에서 데이터를 입출력하는데 필요한 모든 작업을 전담해서 처리하도록 9코어 프로세서를 별도로 달았고, MS는 DirectStorage API 를 설계하고 전용 압축해제 블록을 달아 CPU의 부담을 정말 최소화하는 방향으로 가기로 했음


그 결과는 XSX에서 단 하나의 싱글코어 자원, 하이퍼쓰레딩 없이 싱글코어의 10% 내외 부하만으로 데이터 입출력에 관여되는 모든 작업 처리가 가능해졌다고 마소는 밝히고 있음




그리고 이 부분은 많이 와전된건데 마소의 SSD가 raw 2.4GB/s, compressed 4.8GB/s 수치인건 이게 뭘 의미하는진 몰라도 아무튼 2.4, 4.8 수치는 많이 들어봤을거임. 이건 압축되지 않은 raw 상태의 데이터를 전송할때 2.4GB/s 로 보내고, 압축된 데이터는 4.8GB/s 만큼 보낼 수 있다는 의미임.


그러니까 압축된 데이터는 초당 4.8GB만큼을 로드해낼 수 있고, 무압축 데이터는 2.4GB만큼 매 초 로드할 수 있는거. 플스는 반대로 무압축 5.5, 압축 8~9GB/s 로 알려져있음.


근데 최근에 어떤 기사에서 벨로시티 아키텍쳐빨로 3배, 5배 빨라진다! 최대 9~14GB/s 지원한다! 이런 얘기가 나왔었는데... 


결론부터 말하면 잘못된 정보임. 마소의 엔지니어도 6GB/s 가능하긴 하지만 어디까지나 하드웨어 환경이 굉장히 이상적일 때에나 달성 가능한 수치고, 무압축 2.4, 압축 4.8 은 늘 실현가능한 현실적인 작동속도로 보고있음. 즉 저 범위를 크게 오버하지는 않을 거란 뜻임


그리고 벨로시티 아키텍쳐도 결국 요소들을 살펴보면 샘플러 피드백 스트리밍은 게임에서 요구하는 텍스쳐를 SSD에서 정확한 데이터만을 골라내, 텍스쳐 부분에서 큰 압축효율로 전송되는 용량 크기 자체를 줄여버리고, DirectStorage API 등의 효과로 싱글코어 자원만으로 데이터 압축 해제까지 감당해낸다는 구조인데 그 어디에도 원본 SSD를 빠르게 가속시킨다 등의 기술은 들어있지 않음.


단지 4.8GB/s 의 압축된 데이터를 보내고 2.4GB/s의 무압축 데이터를 보낼 수 있는데, 샘플러 피드백 스트리밍 컴포넌트의 기능으로 불필요한 데이터들을 걸러낸 채 화면에 필요한 정확한 데이터량을 산정해 보냄으로써 불필요 데이터가 차지했던 공간 자체를 절약해버리고, BCPack 과 같은 고효율 압축기술을 활용해 압축상태에서의 전송 효율을 크게 올리고자 하는 목적임. 



소니는 이 부분을 범용 Kraken 압축기술과 SSD에 집중투자함으로써 다양한 기술이 압축된 전용 컨트롤러가 들어간 SSD의 자체 성능으로 불필요 데이터고 뭐고 그냥 초고속으로 더 많이 보내버리면 그만 아냐? 란 마인드로 간거고 마소는 대역폭이 절반에 불과하지만 정확한 데이터만을 보냄으로써 불필요 데이터가 차지하는 공간 자체를 없애버리겠다! 효율성 추구! 가 목적이라고 볼 수 있음 




제한속도 없고 톨게이트도 없는 12차선 아우토반 vs 하이패스 달린 차만 들어갈 수 있는 하이패스 톨게이트를 거쳐가는 8차선 고속도로 생각해보면 될듯