CY7C68023 flash read speed and read cache

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

We have a design with CY7C68023 controller and 4x S34ML08G101TFI000  NAND flash memories.

All is working well except the read speed is much lower than expected when we benchmark with large files.

Initially we get about 12MByte/s read speed, which is good enough, but this drops quite rapidly to about 2-3 MByte/s.

The MfgTool did not detect the type of memory, so we had to fill in the parameters by hand (page size 2048, pages per block 64, blocks 8192, read cycle 30ns, read cache enabled, programming cache enabled, no internal moves). Is this related to the following note in the datasheet?

Note: For 41nm 2Gb/4Gb Cypress NAND, for a particular condition, the Read Parameter Page command does not give the correct values. To overcome this issue, the host must issue a Reset command before the Read Parameter Page command. Issuance of Reset before the Read Parameter Page command will provide the correct values and will not output 00h values. This does not apply to 48nm 1Gb

When we probe R_B2#, RE0# and WE# signals on the board it seems as if the controller is not using the page read cache mode. We conclude this since it always has to wait at least 25 us after reading 1 page of data before reading the next. With the page read cache mode the wait should not be more than 3us, right?

Any ideas?

Martin Åkerberg

0 Likes
1 Solution
Sananya_14
Moderator
Moderator
Moderator
750 replies posted 500 replies posted 250 solutions authored

Hello,

Yes correct. If it is in the read cache page mode, the wait time should be 3 us. The first case is what is most likely since if we see in the NX2LP firmware (in the header file inand.h), we dont see the 0x31 command for read cache mode but for page read we find the 0x00 command. The source code for the tool also does not include the command so that option may not be present in the latest version of the tool.

Best Regards,

Sananya

View solution in original post

0 Likes
5 Replies
Sananya_14
Moderator
Moderator
Moderator
750 replies posted 500 replies posted 250 solutions authored

Hello Martin,

Please let us know if you were able to see atleast the Manufacturer and Product ID detected on the MfgTool when you added the New NAND flash parameters. Also, did you observe the wait time of 25 us when you set the support Read Cache mode in the tool?

Best Regards,

Sananya

0 Likes
Anonymous
Not applicable

Hi

The Manufacturer and Product ID was detected by the tool as 01h and D3h. But that was all that was detected.

The support Read Cache mode was checked in the MfgTool when we used it to set the flash parameters, we then observed the 25 us wait time.

Here is the content of OtherParts.xml:

<?xml version="1.0" standalone="yes"?>
  <!-- User-entered NAND Parts -->
  <NAND_DEVICE_DB>
    <NAND_DEVICE Vendor_Name="Cypress" Part_Number="S34ML08G101TFI000" Vendor_Code="01" Device_Code="D3" Page_Size="2112" Pages_Per_Block="64" Blocks="8192" Read_Cycle_ns="30" Read_Cache="1" Prog_Cache="1" Internal_Move="0" />
  </NAND_DEVICE_DB>

 

Here is a oscilloscope picture showing the read-behavior. Green = WE#, purple = RE#, orange = R/B#

To me it looks as if it is reading one page (4x512 = 2048 bytes) and then have to wait another 25 us before reading the next.

001.PNG

0 Likes
Sananya_14
Moderator
Moderator
Moderator
750 replies posted 500 replies posted 250 solutions authored

Hi,

The Manufacturer and Product ID are the necessary parameters which are retrieved by NX2LP when connected to any new NAND Flash device. The OtherParts.xml shared by you shows the proper configuration was saved after entering the rest of the parameters which will be used for identifying the part next time onwards.

On setting the Read Cache mode, could you please check if the 0x31 command is being sent once CLE goes high in the read operation?

Best Regards,

Sananya

0 Likes
Anonymous
Not applicable

I don't have a logic-analyser so I can't see the actual data-words being written to the flash. I just noticed that R/B# is kept low for about 25 us after a command is written, before read is continued. Since all 2048 before the command seems to be sequential, and all 2048 after the command is sequential, I concluded that we are observing a sequential read longer than 4096 bytes. In this case a read cache page mode command (0x31) should be used when loading the next page, but in that case there would only be a 3us wait right?

So what we see is either the controller not sending 0x31 command, which indicates the controller is not using (or is not aware of) the fact that the flash supports read cache. Or the controller is sending 0x31 command, but the flash has not cached the page and has to read it first. Isn't the first reason the most likely?

0 Likes
Sananya_14
Moderator
Moderator
Moderator
750 replies posted 500 replies posted 250 solutions authored

Hello,

Yes correct. If it is in the read cache page mode, the wait time should be 3 us. The first case is what is most likely since if we see in the NX2LP firmware (in the header file inand.h), we dont see the 0x31 command for read cache mode but for page read we find the 0x00 command. The source code for the tool also does not include the command so that option may not be present in the latest version of the tool.

Best Regards,

Sananya

0 Likes