Diit.cz - Novinky a informace o hardware, software a internetu

Pitva odvařeného 40GB SSD Intel 320

Pitva 40 Gb Ssd Intel 320
Ne, opravdu jsme nenechali odvařené SSD ani po smrti odpočinout. Naskytla se totiž unikátní příležitost SSD rozpitvat a popovídat si přímo s NAND flash čipy…

Kapitoly článků

2.  Detektivní práce zpětného inženýra

Identifikace pamětí

Než mi byl disk od WIFTa doručen, prohlédl jsem si fota vnitřností a zkoušel najít dokumentaci k použitým flash čipům. Bohužel pro obvod Intel 29F64G08ACME1 není dostupná žádná dokumentace, ale to nás přece neodradí – detektivní práce zpětného inženýra je to pravé geekovské dobrodružství.

V době internetu je hodně težké udržet tajemství a vyhledávání obrázků na Googlu poskytlo první indicii:

 29 F 64 G 08 Acme 1 L 74 A Diemrk

Zdroj: www.chipworks.com/Products/29F64G08ACME1_L74A_diemrk.jpg

K podobnému výsledku bychom se mohli dopracovat ve vlastní režii – za cenu nevratného poškození čipu, která ale není akceptovatelná – s obvody ještě máme své plány.

Intel a Micron mají úzkou spolupráci na poli NAND flash pamětí a toto je příkladná aplikace spolupráce. 64Gbit flash paměť byla nejčastěji používaná součástka a její masová výroba pomohla srazit ceny SSD do spotřebitelského segmentu.

Obrázek povrchu čipu nese kromě roku návrhu (2009) jednu důležitou informaci – kódové označení L74A. Modelová čísla v tomto formátu nesou obvody od Micronu – a pod tímto označením již nějakou dokumentaci najít lze. Zajímavostí je, že existují různé varianty obvodů – synchronní / asynchronní, 3.3V nebo 1.8V, jednočipové nebo vícečipové – a všechny jsou založeny na stejném kousku křemíku:

Micron Nand Flash Memory Part Numbering

Zdroj: wenku.baidu.com/view/1942695a312b3169a451a49f.html

Označení Intelu se ale liší – kombinaci …ACME1 nelze dekódovat podle tabulky od Micronu. Protože označení nese jednu důležitou informaci – komunikační napětí, nezůstalo nám nic jiného než napětí před rozebráním disku změřit. Naše obvody zde používají 1.8V.

Hardware

Pro komunikaci s obvody jsem zvolil nejjednodušší cestu – na míru navrženou desku se sdílenou datovou sběrnící. Kromě zdroje na 1.8V a oddělovačů pro konverzi 3.3V/1.8V nese tato deska již jen samotné flash paměti. Řízení je realizováno univerzálně použitelným procesorovým modulem (ATmega644PA), který má na sobě i USB programátor a virtuální sériovou linku. V podstatě to je srovnatelné s Arduinem, jen rozměry jsou 30×40 mm a pro připojení do aplikace se používá vhodnější konektor nesoucí všechny signály procesoru.

Software

V procesorovém modulu běží náš vlastní „operační systém“ – složený z ovladačů a uživatelských utilit – programů komunikujících skrze příkazovou řádku. Tvorba nových komponent je tedy velice rychlá. Paměti používají otevřený standard ONFI – byl tedy implementován ovladač poskytující funkce podle této specifikace. Specifikace definuje dva různé přístupové režimy – povinný asynchronní (50 MHz SDR = 50MT/s) a volitelný synchronní (100 MHz DDR = 200MT/s). Jak se později ukázalo, synchronní režim není v našich obvodech povolen – ať žije marketing!

Specifikace ONFI definuje sadu identifikačních funkcí, které nám pomohly obvody identifikovat:

# onfi id 0
0:
ID4: 4f 4e 46 49 ONFI
ID8: 89 88 24 4b a9 00 00 00 ..$K....
MFG: INTEL
P/N: JS29F64G08AAME1
UID: 4eb1db74b8e9a07cff00ff00ff00ff00

Každý obvod se hlásí stejně, až na unikátní identifikátor, který je jiný v každém obvodu:

0: 4eb1db74b8e9a07cff00ff00ff00ff00
1: 4eb15bb198e8a05cff00ff00ff00ff00
2: aeb7db76d0e8a04cff00ff00ff00ff00
3: d6badb5ad0e8a07cff00ff00ff00ff00
4: aeb7db1621e9a04cff00ff00ff00ff00
5: 4eb1db9478e9a05cff00ff00ff00ff00

Není nám známo, zda tento identifikátor je použitý u šifrování disku, pravděpodobně není. Co je ale zajímavé, je fakt, že počet chyb, které jsme později změřili, korelují s hodnotou identifikátoru – obvody 0,1 a 5, nesoucí ID 4EB1… vykazují o mnoho méně chyb.

Také nesouhlasí modelové číslo, kterým se obvod hlásí (JS29F64G08AAME1) s tím, co je na obvodě napsáno (JS29F64G08ACME1), ale bez příslušné dekódovací tabulky se nedá konkrétně říct, o kterou vlastnost obvodu se jedná.

Podrobnější identifikace a parametry obvodu jsou dostupné v binární podobě, zájemci si mohou parametry vyložit pak podle ONFI specifikace:

# onfi par 0
0x0000: 4f 4e 46 49 1e 00 58 00 ff 03 00 00 00 00 00 00 ONFI..X.........
0x0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x0020: 49 4e 54 45 4c 00 00 00 00 00 00 00 4a 53 32 39 INTEL.......JS29
0x0030: 46 36 34 47 30 38 41 41 4d 45 31 00 00 00 00 00 F64G08AAME1.....
0x0040: 89 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x0050: 00 20 00 00 c0 01 00 00 00 00 00 00 00 01 00 00 . ..............
0x0060: 00 10 00 00 01 23 02 64 00 88 13 01 00 00 01 00 .....#.d........
0x0070: 18 01 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x0080: 0a 3f 00 00 00 c4 09 10 27 4b 00 c8 00 00 00 00 .?......'K......
0x0090: 00 00 00 00 00 00 0a 07 4b 00 00 00 00 00 00 00 ........K.......
0x00a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x00b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x00c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x00d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x00e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x00f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 85 78 ...............x

Organizace našich pamětí je:

  • 8192 + 448 bajtů má stránka, což je nejmenší programovatelná oblast
  • 256 stránek na blok, což je nejmenší mazatelná oblast
  • 4096 bloků v obvodu

Celkem je to tedy 9.059.696.640 bajtů (72,48 Gbit), ale protože se jedná o MLC paměti, fyzicky je na čipu jen poloviční počet buněk (36,24 miliard). Pro srovnání: velikost stránky v SLC pamětech byla 4096+224 bajtů. Dokumentace zmiňuje ještě rozdělení sudých a lichých bloků na dvě oblasti (planes), které jsou výsledkem fyzické organizace obvodu do dvou podoblastí a umožňují současné mazání a programování, když se tyto operace provádí ve své oblasti.

25nm 64Gbit NAND flash die, 2bit MLC

Zdroj: www.intel.com/pressroom/images/25nm/25-nm-die.jpg

Kapitoly článků
2.  Detektivní práce zpětného inženýra

WIFT "WIFT" WIFT

Bývalý dlouholetý redaktor internetového magazínu CDR-Server / Deep in IT, který se věnoval psaní článků o IT a souvisejících věcech téměř od založení CD-R serveru. Od roku 2014 už psaní článků fakticky pověsil na hřebík.

více článků, blogů a informací o autorovi

Diskuse ke článku Pitva odvařeného 40GB SSD Intel 320

Neděle, 4 Leden 2015 - 19:54 | Fero | Tak piny trafis, len ci sa ti nespoji nejaka noha...
Neděle, 4 Leden 2015 - 19:31 | danieel | Proc bych se netrefil na piny? Plosky jsou presne...
Neděle, 4 Leden 2015 - 19:25 | Fero | Ano, mal si to pekne oznacene, ale keby si to...
Neděle, 4 Leden 2015 - 17:14 | danieel | Neni to az tak barbarsky rozebrano, kdykoliv to...
Neděle, 4 Leden 2015 - 16:13 | Fero | Velmi pekny pokus. Skoda ale, ze si to SSD takto...
Středa, 31 Prosinec 2014 - 20:30 | Magy357 | Zdravim. Ano, vedel. Kamera sla do predaja ako...
Středa, 31 Prosinec 2014 - 09:46 | danieel | Alespon neco! - muzes me kontaktovat na daniel (...
Středa, 31 Prosinec 2014 - 08:22 | Tyfo | tak jsem nasel nakonec jen jeden, ostatni se asi...
Úterý, 30 Prosinec 2014 - 17:22 | BzF | Kapacita 8MB - to bude ten jejich bug: https://...
Úterý, 30 Prosinec 2014 - 13:44 | ondra1 | Tak zálohovat je snad normální lhostejno zda mám...

Zobrazit diskusi