Recent Dell XPS 2016 NVMe M.2 Hynix 512GB SSD Data Recovery job from a University in the UK posted to us with detailed explanation of some steps that were done to investigate and temporary get the SSD working again to gain access. Also, this SSD drive was fully encrypted from the Dell XPS Laptop. This week we were working on a Hynix PCIe NVME Solid State Drive that was not being recognized or responded to any command. I will go through some of the steps that were tasking to get the Hynix SSD Hard Drive reading again and we were able to get 99.92% of the SSD drive imaged. Very few data recovery companies in the world could have done that kind of recovery on a PCIe NVMe M.2 Solid State Drive. SSD drives are much more complex than their brothers the spinning hard drives and require a completely different approach. Here is a picture take from the Hynix 525GB SSD Drive showing all the pcb components such as controller and nand flash chips. Under the microscope we could not find any damaged or burned out components upon visual inspection. The NVMe drive would not be recognized by a computer or DeepSpar imager. It's definitely something physical if it doesn't show up at all. Worst case controller is completely fried, best case one of the minor components failed. NAND is probably OK (controllers usually still reply at least something if NAND is gone).
I included an SSD diagram highlighting the different components. There is no easy fix on those devices and you will need a lot of specialist hardware to gain root level access and control of the reading process. You can try at home but you will soon realize you won’t get very far. All you can do is measure the voltages going in and out checking for shorts on the PCP and check other components such as caps, diodes crystals ….. Keep in mind you cannot lift the nand flash chips and read them out on a modern SSD drive. The controller is using scrambling and encryption for each flash nand chip
and also the data is written in raid 0 to more than 1 nand chip if the file is over 4kb. Even a simple word or excel file is already bigger than that and data would be contained in at least 2 nand chips on a solid-state drive. I will update this article with more information as I go and also more details but at the moment we focus on the main components, how SSD drives are working and what can be done. I used a faulty Hynix PCIe SSD drive to give some better examples but there are many different designs out there and manufactures tend to change nand flash chips and controller quite
There a not that many components on a PCIe NVMe Solid State Drives and the worst case would be a total controller failure. If you have a total controller failure of an SSD there is no money and nobody in the world currently able to get data off. SSD controllers are well build but they can fail from internal failure to problems with the solder connection. You may have a firmware issue or fault memory nand chips. If you have bad nand on an SSD the drive might be recognized by the operating system but your PC or Apple might simple crash accessing blocks or writing to them. The SSD controller will normally keep track on bad areas and exclude them and move data out of those blocks but there is a good chance it doesn’t detect the fault and retires to write into it. Also, the operating system has no control over the reading and writing into the nand memory chips. Windows, Linux and OS X are only talking to the solid-state drive controller and cannot access behind it. Also, this causes another problem if you ever want to delete data from your solid-state drive as the operating system has no control over the blocks and pages. If we could access the nand directly via lift off nand data recovery on an SSD that was DOD erased / wiped you would actual find your data on it. The idea behind the controller actually not deleting data is based on the wear and tear of nand. Reading a nand chip through the controller has very little wear and the SSD drive but writing has. SSD Drives and the controller can read data by pages on top of blocks but to write a page (128 – 2048 per block) typically the solid-state controller needs to write a full block and relocate
existing page data beforehand. Sounds complicated but I give an example. You want to read data from a ssd the operating system sends a command to the SSD. The controller responds and looks up it’s block register to find the block and the pages containing the requested data. Data is access and delivered to controller and back to the operating system. The read out of the chip is done with applied voltages and no wear or tear was done to the drive. Pretty simple but let’s say you would like to write a file (16 pages long) to an SSD drive and data is already present in that block. Let’s say 150 pages out of 256 are filled but there is space for another 106 pages in this block. The controller and the ssd nand chip cannot just simply add the 16 pages to it since writing can only happen on a block level. The existing 150 pages need to be read first transferred to another block and the missing 16 pages added to it. Once the transfer is done we would have an existing block with 150 pages and the block is marked as empty. Deleting data in this block would cause additional wear and tear. Simply the block register is marked as available and we would have a new occupied block with 150 + 16 pages = 166 pages in a new block. The same write process has to be followed every time you want to write data to an SSD drive. SSD controllers try to minimize the write as much as possible and keep track if blacks and pages via internal registers and can decide to write data on its own without interference from the operating system. There are many more internal processes running to get data writing to an SSD drive but I kept it as simple as possible. If you need clarification contact me.
We talked about the basics of an SSD drive and now we get a bit more into details. If a solid state drive is not being detected the first step would be Start by checking the preliminary electronics. Vcc lines, shorts to Ground.
I marked the components I would start to check on this Hynix SSD PCIe NVMe.
I haven't been able to find a datasheet for the SM6741 PMIC, but the SM6742 appears to be similar. SM6742, Silicon Mitus, PMIC, 4 x bucks, 1 x boost converter, 3 x power pass switches, I2C programmable, 2.6V - 3.6V in, QFN-40:
MCP9844T-BE/MNY, Microchip, +/-1 degC, 1.8V Digital Temperature Sensor, marking ABS, TDFN-8:
and also worth checking the DSG Package:
Following measurements were taken from the not recognized M.2 Hynix Hynix 512GB PC300 M2 PCIE NVMe SSD
Something is not right here with our measurements taken and we need to double check and verify again. But it is a good start to get a better idea. My guess is that we are looking at a short down the line on this M.2 Hynix Hynix 512GB PC300 M2 PCIE NVMe SSD.