Phison Electronics Corporation ( Chinese : 群聯電子 ; pinyin : Qúnlián Diànzǐ ) is a Taiwanese public electronics company that primarily designs, manufactures and sells controllers for NAND flash memory chips . These are integrated into flash-based products such as USB flash drives , memory cards , and solid-state drives (SSDs).
40-564: Phison is a member of the Open NAND Flash Interface Working Group (ONFI), which aims to standardize the hardware interface to NAND flash chips. Phison was founded in 2000 by Datuk Pua Khein Seng and four others. Phison claims to have produced the earliest single-chip USB flash removable disk , dubbed a "pen drive." In early October 2014, security researchers Adam Caudill and Brandon Wilson publicly released source code to
80-503: A joke , conflating the two meanings of bug (biological and defect), the story indicates that the term was used in the computer field at that time. Similarly, the term debugging was used in aeronautics before entering the world of computers. A letter from J. Robert Oppenheimer , director of the WWII atomic bomb Manhattan Project at Los Alamos, used the term in a letter to Dr. Ernest Lawrence at UC Berkeley, dated October 27, 1944, regarding
120-587: A culture of a "zero-defects" mandate, where people might be tempted to deny the existence of problems so that the result would appear as zero defects . Considering the collateral issues, such as the cost-versus-benefit impact assessment, then broader debugging techniques will expand to determine the frequency of anomalies (how often the same "bugs" occur) to help assess their impact to the overall system. Debugging ranges in complexity from fixing simple errors to performing lengthy and tiresome tasks of data collection, analysis, and scheduling updates. The debugging skill of
160-559: A firmware attack against Phison USB controller ICs. This code implements the BadUSB exploit described in July 2014 at the Black Hat Briefings conference. In August 2019, Phison announced that they would be releasing PS-50 series chips, e.g., PS5018-E18, that are designed to support PCIe 4.0 NVMe (non-volatile memory express) solid-state drives (SSDs). With such technology, the chips built on
200-414: A functionality available on low-cost embedded processors, an On-Chip Debug Module (OCDM), whose signals are exposed through a standard JTAG interface . They are benchmarked based on how much change to the application is needed and the rate of events that they can keep up with. In addition to the typical task of identifying bugs in the system, embedded system debugging also seeks to collect information about
240-604: A new entry-level DRAM-less NVMe SSD controller in 2021. For portable SSDs, Phison introduced the U17 and U18 controllers. For NVMe SSDs, Phison introduced the E21T controller in 2021, their latest DRAM-less NVMe controller. This is a follow-up to the E19T controller, which had seen very little use in retail consumer SSDs but has actually been outselling their high-end E16 PCIe 4.0 controller due to strong demand from OEMs. In January 2022, Phison introduced
280-429: A new model of flash chip is used in them. When a flash controller is expected to operate with various NAND flash chips, it must store a table of them in its firmware so that it knows how to deal with differences in their interfaces. This increases the complexity and time-to-market of flash-based devices, and means they are likely to be incompatible with future models of NAND flash, unless and until their firmware
320-684: A single task (or small range of tasks), and the platform is chosen specifically to optimize that application. Not only does this fact make life tough for embedded system developers, it also makes debugging and testing of these systems harder as well, since different debugging tools are needed for different platforms. Despite the challenge of heterogeneity mentioned above, some debuggers have been developed commercially as well as research prototypes. Examples of commercial solutions come from Green Hills Software , Lauterbach GmbH and Microchip's MPLAB-ICD (for in-circuit debugger). Two examples of research prototype tools are Aveksha and Flocklab. They all leverage
360-472: Is a stub . You can help Misplaced Pages by expanding it . This article about a Taiwanese corporation or company is a stub . You can help Misplaced Pages by expanding it . Open NAND Flash Interface Working Group The Open NAND Flash Interface Working Group ( ONFI or ONFi with a lower case "i") is a consortium of technology companies working to develop open standards for NAND flash memory and devices that communicate with them. The formation of ONFI
400-427: Is actively used by recognized publishers in copy-protection schemas, but is also used by malware to complicate its detection and elimination. Techniques used in anti-debugging include: An early example of anti-debugging existed in early versions of Microsoft Word which, if a debugger was detected, produced a message that said, "The tree of evil bears bitter fruit. Now trashing program disk.", after which it caused
440-649: Is added. ONFI 4.1 also includes errata to the ONFI 4.0 specification. Version 4.2 , published on February 12, 2020, extends NV-DDR3 I/O speeds to 1333MT/s, 1466MT/s and 1600MT/s. The BGA-252b four channel package is introduced which has a smaller footprint than the existing BGA-272b four channel package. To enable higher IOPS multi-plane operations, addressing restrictions related to multi-plane operations are relaxed. Version 5.0 , Published in May 2021, ONFI5.0 extends NV-DDR3 I/O speeds up to 2400MT/s. A new NV-LPDDR4 lower power interface
SECTION 10
#1733085657118480-660: Is assigned a value. As another example, some such tools perform strong type checking when the language does not require it. Thus, they are better at locating likely errors in code that is syntactically correct. But these tools have a reputation of false positives, where correct code is flagged as dubious. The old Unix lint program is an early example. For debugging electronic hardware (e.g., computer hardware ) as well as low-level software (e.g., BIOSes , device drivers ) and firmware , instruments such as oscilloscopes , logic analyzers , or in-circuit emulators (ICEs) are often used, alone or in combination. An ICE may perform many of
520-564: Is introduced with speeds up to 2400MT/s. With the NV-LPDDR4 interface, an optional Data Bus Inversion (DBI) feature is defined. New smaller footprint BGA-178b, BGA-154b and BGA-146b packages are added. ONFI5.0 also includes other errata related to the ONFI4.2 specification. ONFI created the Block Abstracted NAND addendum specification to simplify host controller design by relieving the host of
560-433: Is the process of finding the root cause , workarounds and possible fixes for bugs . For software , debugging tactics can involve interactive debugging, control flow analysis, log file analysis , monitoring at the application or system level, memory dumps , and profiling . Many programming languages and software development tools also offer programs to aid in debugging, known as debuggers . The term bug , in
600-805: Is updated. Thus, one of the main motivations for standardization of NAND flash was to make it easier to switch between NAND chips from different producers, thereby permitting faster development of NAND-based products and lower prices via increased competition among manufacturers. By 2006, NAND flash became increasingly a commodity product, like SDRAM or hard disk drives. It is incorporated into many personal computer and consumer electronics products such as USB flash drives , MP3 players , and solid-state drives . Product designers wanted newer NAND flash chips, for example, to be as easily interchangeable as hard disks from different manufacturers. The effort to standardize NAND flash may be compared to earlier standardization of electronic components . For example,
640-405: The 7400 series of TTL digital integrated circuits were originally produced by Texas Instruments , but had become a de facto standard family by the late 1970s. These ICs are manufactured as commodity parts by a number of different vendors. This has allowed designers to freely mix 7400 components from different vendors—and even to mix components based on different logic families , once
680-575: The JEDEC was published in October 2012. Version 3.1 , published in october of 2012, includes errata to the original ONFI 3.0 specification, adds LUN SET/GET Features commands, and implements additional data setup and hold values for NV-DDR2 interface. Version 3.2 , published on July 23, 2013, raised the data rate to 533 MB/s. Version 4.0 , published on April 17, 2014, introduced the NV-DDR3 interface increases
720-554: The 74HCT sub-family become available (consisting of CMOS components with TTL-compatible logic levels). The ONFI consortium included manufacturers of NAND flash memory such as Hynix , Intel , Micron Technology , Phison , Western Digital , Sony and Spansion . Samsung , the world's largest manufacturer of NAND flash, was absent in 2006. Vendors of NAND flash-based consumer electronics and computing products are also members. ONFI produced specifications for standard interface to NAND flash chips. Version 1.0 of this specification
760-552: The E26 SSD controller, with higher transfer speeds than previous controllers. In April 2022, Phison announced a long term partnership with data storage company Seagate to develop and distribute enterprise NVMe SSDs. The company set up a research and development (R&D) centre named "Phisontech" in Bayan Lepas , Penang , Malaysia in 2012, that was involved in the design and development of flash memory applications. The R&D centre
800-478: The NVMe SSDs have read and write speed of up to 7,000 MBs per second. In late 2020, Phison started shipping their E18 for high-end NVMe SSDs. In January 2021, Phison announced that they were planning to introduce a pair of USB flash drive controllers for high-end portable SSDs, designed to compete against current solutions that combine a USB to NVMe bridge chip with a standard NVMe SSD controller. Phison also released
840-676: The complexities of ECC, bad block management, and other low-level NAND management tasks. The ONFI Block Abstracted NAND revision 1.1 specification adds the high speed source synchronous interface, which provides up to a 5X improvement in bandwidth compared with the traditional asynchronous NAND interface. The NAND Connector Specification was ratified in April 2008. It specifies a standardized connection for NAND modules (similar to DRAM DIMMs) for use in applications like caching and solid-state drives (SSDs) in PC platforms. Debug In engineering , debugging
SECTION 20
#1733085657118880-428: The initial problem happened. In those cases, memory debugger tools may be needed. In certain situations, general purpose software tools that are language specific in nature can be very useful. These take the form of static code analysis tools . These tools look for a very specific set of known problems, some common and some rare, within the source code, concentrating more on the semantics (e.g. data flow) rather than
920-471: The input of the program may need to be simplified to make it easier to debug. For example, a bug in a compiler can make it crash when parsing a large source file. However, after simplification of the test case, only few lines from the original source file can be sufficient to reproduce the same crash. Simplification may be done manually using a divide-and-conquer approach, in which the programmer attempts to remove some parts of original test case then checks if
960-633: The maximum switching speed from 533 MB/s to 800 MB/s, providing a performance boost of up to 50% for high performance applications enabled by solid-state NAND storage components. Version 4.1 , published on December 12, 2017, extends NV-DDR3 I/O speeds to 1066 MT/s and 1200MT/s. For better signaling performance, ONFI 4.1 adds Duty Cycle Correction (DCC), Read and Write Training for speeds greater than 800MT/s, support for lower pin cap devices with 37.5 Ohms default output resistance, and devices which require data burst exit and restart for long data input and output pauses. For lower power, 2.5V Vcc support
1000-400: The operating states of the system that may then be used to analyze the system: to find ways to boost its performance or to optimize other important characteristics (e.g. energy consumption, reliability, real-time response, etc.). Anti-debugging is "the implementation of one or more techniques within computer code that hinders attempts at reverse engineering or debugging a target process". It
1040-413: The person who is doing the debugging. Generally, high-level programming languages , such as Java , make debugging easier, because they have features such as exception handling and type checking that make real sources of erratic behaviour easier to spot. In programming languages such as C or assembly , bugs may cause silent problems such as memory corruption , and it is often difficult to see where
1080-410: The problem still occurs. When debugging in a GUI , the programmer can try skipping some user interaction from the original problem description to check if the remaining actions are sufficient for causing the bug to occur. After the test case is sufficiently simplified, a programmer can use a debugger tool to examine program states (values of variables, plus the call stack ) and track down the origin of
1120-569: The problem(s). Alternatively, tracing can be used. In simple cases, tracing is just a few print statements which output the values of variables at particular points during the execution of the program. In contrast to the general purpose computer software design environment, a primary characteristic of embedded environments is the sheer number of different platforms available to the developers (CPU architectures, vendors, operating systems, and their variants). Embedded systems are, by definition, not general-purpose designs: they are typically developed for
1160-489: The programmer can be a major factor in the ability to debug a problem, but the difficulty of software debugging varies greatly with the complexity of the system, and also depends, to some extent, on the programming language (s) used and the available tools, such as debuggers . Debuggers are software tools which enable the programmer to monitor the execution of a program, stop it, restart it, set breakpoints , and change values in memory. The term debugger can also refer to
1200-557: The recruitment of additional technical staff. The Oxford English Dictionary entry for debug uses the term debugging in reference to airplane engine testing in a 1945 article in the Journal of the Royal Aeronautical Society. An article in "Airforce" (June 1945 p. 50) refers to debugging aircraft cameras. The seminal article by Gill in 1951 is the earliest in-depth discussion of programming errors, but it does not use
1240-431: The sense of defect, dates back at least to 1878 when Thomas Edison wrote "little faults and difficulties" in his inventions as "Bugs". A popular story from the 1940s is from Admiral Grace Hopper . While she was working on a Mark II computer at Harvard University, her associates discovered a moth stuck in a relay that impeded operation and wrote in a log book "First actual case of a bug being found". Although probably
Phison - Misplaced Pages Continue
1280-402: The syntax, as compilers and interpreters do. Both commercial and free tools exist for various languages; some claim to be able to detect hundreds of different problems. These tools can be extremely useful when checking very large source trees, where it is impractical to do code walk-throughs. A typical example of a problem detected would be a variable dereference that occurs before the variable
1320-419: The system, or perhaps a scheduled new release might render the change(s) unnecessary. Not all issues are safety-critical or mission-critical in a system. Also, it is important to avoid the situation where a change might be more upsetting to users, long-term, than living with the known problem(s) (where the "cure would be worse than the disease"). Basing decisions of the acceptability of some anomalies can avoid
1360-492: The term bug or debugging . In the ACM 's digital library, the term debugging is first used in three papers from 1952 ACM National Meetings. Two of the three use the term in quotation marks. By 1963 debugging was a common-enough term to be mentioned in passing without explanation on page 1 of the CTSS manual. As software and electronic systems have become generally more complex,
1400-410: The typical software debugger's tasks on low-level software and firmware . The debugging process normally begins with identifying the steps to reproduce the problem. This can be a non-trivial task, particularly with parallel processes and some Heisenbugs for example. The specific user environment and usage history can also make it difficult to reproduce the problem. After the bug is reproduced,
1440-552: The various common debugging techniques have expanded with more methods to detect anomalies, assess impact, and schedule software patches or full updates to a system. The words "anomaly" and "discrepancy" can be used, as being more neutral terms , to avoid the words "error" and "defect" or "bug" where there might be an implication that all so-called errors , defects or bugs must be fixed (at all costs). Instead, an impact assessment can be made to determine if changes to remove an anomaly (or discrepancy ) would be cost-effective for
1480-560: Was announced at the Intel Developer Forum in March 2006. The group's goals did not include the development of a new consumer flash memory card format. Rather, ONFI seeks to standardize the low-level interface to raw NAND flash chips, which are the most widely used form of non-volatile memory integrated circuits (chips); in 2006, nearly one trillion MiB of flash memory was incorporated into consumer electronics, and production
1520-495: Was expected to double by 2007. As of 2006 , NAND flash memory chips from most vendors used similar packaging, had similar pinouts , and accepted similar sets of low-level commands. As a result, when more capable and inexpensive models of NAND flash become available, product designers can incorporate them without major design changes. However, "similar" operation is not optimal: subtle differences in timing and command set mean that products must be thoroughly debugged and tested when
1560-479: Was later closed down in 2019 due to talent loss, work culture and lack of supporting local businesses. In 2024, Phison started a new company called "MaiStorage" in Puchong , Selangor , Malaysia , involved in integrated circuit (IC) design and computer data storage technologies in data centres, electric vehicles, and generative artificial intelligence . This article about a technological corporation or company
1600-569: Was released on December 28, 2006, and made available at no cost from the ONFI web site. Samsung was still not a participant. It specified: A verification product was announced in June 2009. Version 2.3 was published in August 2010. It included a protocol called EZ-NAND that hid ECC details. Version 3.0 was published in March 2011. It required fewer chip-enable pins enabling more efficient printed circuit board routing. A standard developed jointly with
#117882