11

My question is more terminological than technical.

I have come across different definitions of what an ASIC is. The most common one is that an ASIC is an IC that is designed for a specific application (as its name implies).

Depending on the exact definition, can we say that a CPU is just an ASIC designed to execute a wide range of instructions? To be more precise, I want to know whether "ASIC" refers to a "physical" or a "functional" concept.

In other words, can we say that a CPU is an ASIC on the physical level, and a CPU on the functional level?

This brings me to ask another question which is whether any IC can be defined as an ASIC. Every IC is designed for a purpose, so every IC is designed for a specific application, so every IC is an ASIC?

ocrdu
  • 8,705
  • 21
  • 30
  • 42
  • *wide range of instructions* sounds off but for emulation hardware. A regular CPU implements an *architecture*. The architecture defines a/the set of instructions, and, more often than not, registers "visible" to the programmer. A CPU's implementation of this architecture may contain less or more registers even for an architectural *register file*. – greybeard Apr 01 '23 at 10:48
  • 17
    If every IC were an ASIC in some definition, then that definition of ASIC would not be useful, or the term ASIC would be superfluous. – ocrdu Apr 01 '23 at 11:26
  • A CPU only becomes application-specific when it is always running the same code, as is often the case with MCUs. Without code, the hardware is general purpose, unless you think "being able to run code" is an application in its own right, much like seeing "being a NAND gate" as an application of a NAND gate IC. The dilemma here seems to be in the definition of "application" rather than in the (derived) definition of "ASIC". That's me done being philosophical for today, promise. – ocrdu Apr 01 '23 at 11:48
  • @ocrdu And that is me done asking philosophical questions for today, that is exactly the point I wanted to get cleared. – Ramzi Baaguigui Apr 01 '23 at 12:12
  • 1
    Need to keep in that at least as far as can recall, CPU's (Intel 4000/8000 series) predated the first so-called ASIC, Those early CPUs were designed & laid out on large sheets of vellum and tape to create the transistors and interconnects. This was only practical for a device that was going to have broad widespread use. – SteveSh Apr 01 '23 at 12:31
  • 1
    And IIRC, the first microprocessor, the Intel 4004(?) was designed for a specific application, the Busicom desktop calculator. – SteveSh Apr 01 '23 at 12:32
  • 2
    And every IC is not designed for an application. It is probably more accurate to say that every IC is designed for a specific function, like the old '5483 was designed to be a 4-bit adder. I would consider that a function, not a application. Now you take that adder (a bunch of them) along with registers, gates, memory, etc and put it into a design and now you have an image processor - an application. – SteveSh Apr 01 '23 at 14:51

5 Answers5

23

An ASIC is a tailor-made suit, normal chips are ready-to-wear.

Being a CPU doesn't disqualify a chip from being an ASIC. Being a general-purpose one designed for a wide market does though. Every chip has an application, that's not the point. The point is whether the designer has a narrow market. In the days of massive toolings costs, this was the big differentiator.

Once tooling costs reduced, you can make a chip for your project -- your application. A CPU for a particular job -- say an experimental LISP machine or a Connection Machine -- could easily be an ASIC.

Perhaps the best way to think of an application-specific chip is that it satisfies both of these:

  1. You can't buy a suitable replacement from the ready-made chip selection
  2. You can't sell any extra you might make because nobody else would want them

As a term of art, it's not black and white and categorical.

So "ASIC" is neither a "physical" nor a "functional" concept: it's a concept around who specifies it. If the buyer is specifying, it's bascially a custom-chip, an ASIC. If the seller specifies, they are hoping they'll sell lots to lots of different customers.

(If you have an enormous internal market (Ford, Boeing, Google), are your internal "ASICs" actually general-purpose? Each organisation will have its own terminology for such a case. It's not the general situation.)

We know what a tailor-made suit is; we know what a custom machine tool is. An ASIC is a custom chip for a project. Just think of the conversation:

Manager: Can we get a part which does everything we want and fit on the board?
Engineer 1: Texas Instruments makes one but it does a lot of other things too and the package is too big.
Engineer 2: Intel makes a chip which does most of it, but we'd need to add some other parts to cover all the functionality.
Engineer 3: I think we should get an ASIC, it will do just the right things in the right package.
Manager: Okay, but I'm worried about minimum production run and cost.

jonathanjo
  • 12,049
  • 3
  • 27
  • 60
  • 1
    This seems to suggest that for a chip to be an ASIC, the market must be so narrow that only end-users have ASICs, designed by themselves for themselves. Wouldn't that disqualify Google's Coral AI TPUs? Aren't those ASICs (or at least use ASICs within)? They are sold with multiple distributors (though many products are sold out ATM). Or did they cease to be ASICs the moment they packaged them up and sold them? – JoL Apr 02 '23 at 03:58
  • 4
    I'd have used the phrase "end designer", but yes. I added some commentary about massive internal markets to the answer, but I'd have said anything on the open market isn't an ASIC. This is a linguistic question about how an engineering community describes something and in general you can of course find blurry edge cases. Even counting the inputs of an AND gate can get tricky if you push at it ("no, power doesn't count as an input but under some conditions you could use it as one"). – jonathanjo Apr 02 '23 at 04:47
  • @greybeard ... thanks for pointing out an unnecessarily unusual word, changed to "custom". – jonathanjo Apr 02 '23 at 05:34
  • @JoL End users without ASIC expertise in house can hire contractors to do ASIC design. – John Doty Apr 02 '23 at 20:17
  • It's always relative. Bitcoin mining ASICs can only do one thing, so they count. TPU do a lot of things, so calling them ASIC seems to be a holdover. They definitely seem to be taking a wide niche similar to FPU in the older days and GPU in consumer hardware. – Therac Apr 02 '23 at 22:12
  • 1
    It is all relative, and definitions shift as time passes. If we imagine a timeline where mass market GPUs didn't exist, but Industrial Light & Magic (ILM) got one designed for their render farms, then that would count as an ASIC - even if it was identical to the GPUs that exist on the marked today. You could also imagine a company designing an ASIC for eye tracking in their VR helmets, and then fast-forward a few years and that chip is incorporated in all manner of devices; smart phones, smart glasses, webcams, etc. to the point where it is then "just" an IC like an AND-gate or an FPU. – Frodyne Apr 03 '23 at 11:01
  • @frodyne ... At the point where ILM got their chip made it was custom and you could neither buy them nor sell them as a commodity item. Certainly what commodoties a market exstis for changes (radically) over time. Nowadays people might want lots of those chips and they're readily available, and so not custom. It's all about whether it's specified by the buy or the seller, no? – jonathanjo Apr 03 '23 at 11:06
  • @jonathanjo Yes, I think we agree. I wanted to make an example where, if Bitcoin got accepted everywhere, the mining ASICs would then become general ICs that everybody had in their smartphones - but that is not how Bitcoin mining works... So I tried to make my example with an imaginary GPU timeline instead. :) – Frodyne Apr 03 '23 at 11:13
7

Strictly speaking, a chip qualifies as "ASIC" (Application-Specific Integrated Circuit) when it's made for a specific application for a specific customer for their internal use, an "ASIC" is not for sale on the open market. On the other hand, if a chip is designed for a specific application, such as a demodulator for a specific wireless system, but it's sold on the open market as a standard part, technically it can only be a ASSP (Application-Specific Standard Product), never an ASIC.

However, these strict definitions are not always followed. In daily language, the term ASIC is often used as a shorthand of "silicon implementation", in contrast to "software implementation" or "FPGA implementation". Thus, if a new chip design, say a special demodulator or a CPU, that previously only existed as software or on FPGA, but now it has been implemented as a silicon chip and commercialized by a company who's selling it on the open market, it may be described by many as its "ASIC" version (in contrast to the previous "software" / "FPGA" version).

In the strict technical sense, if it's a demodulator, despite being application-specific, since it's being sold on the open market it cannot be qualified as an ASIC, only an ASSP. And if it's a CPU, since it's neither Application Specific nor provided for a specific customer for their internal use, it also cannot be qualified as an ASIC. But most people are not that pedantic, the loose usage of using "ASIC" as a shorthand of "silicon implementation" is common.

比尔盖子
  • 6,064
  • 2
  • 24
  • 51
6

Arguably, the Intel 4004 was an ASIC designed for a Busicom calculator, but instead turned into the first commercially produced microprocessor.

Similarly, the Intel 8008 could be considered an ASIC designed for a Datapoint computer terminal, which ended up not being used by Datapoint.

In both cases, Intel was not originally planning to market the chip as a general purpose processor to other customers.

The 8008 led to the 8080, and the rest is history.

3

I think the distinction is from a market perspective, from what/who has been driving the development, at least the specification:

Standard ICs implement something "obviously" useful, such as amplifier, timer, display driver, RAM, even CPU. (Obvious to someone knowledgeable in the field. Changing over time.)
Driven by IC manufacturer.

Application specific will have more elaborate descriptions such as split air condition controller, washing machine controller - dang, fail to come up with an appropriate "non-digital" example.
Driven by a customer of an IC manufacturer.

Offering ASIC development support subsumed ways to reduce time to market, e.g., pre-fabricate sea of gates but for two layers of metallisation.
Field programmable devices changed things for sure.

greybeard
  • 1,469
  • 1
  • 4
  • 17
  • I get from your answer that the abstract computing layer on which the definition "application-specific" applies is the application layer. Correct me if I am wrong. Let's use the example you provided and suppose that we can use the same IC to control the air conditioner and the washing machine just as an example. So, the IC used as the washing machine controller is different from the IC that is used as an air conditioner controller despite the fact that they have the same physical implementation. – Ramzi Baaguigui Apr 01 '23 at 11:37
  • `the IC used as [application A] is different from the IC that is used as [application 1] despite the fact that they have been bought the same` It stands to reason whether this is the case where the differentiating configuration is in a separate chip, even package, but on a systems level, I think about it that way. – greybeard Apr 01 '23 at 11:45
  • @Ramzi Baaguigui - What do you mean by same physical implementation? Do you mean they are identical parts, being used in two different applications? – SteveSh Apr 01 '23 at 14:46
  • 1
    One simple example of an analogue ASIC is an FM radio chip, typically containing RF tuning circuitry, digital control circuitry, and audio conditioning circuitry, in a setup that makes it impractical to use for anything else. – user1937198 Apr 01 '23 at 21:28
  • @SteveSh I mean the same circuitry inside – Ramzi Baaguigui Apr 02 '23 at 05:08
  • @user1937198: Something like the TBA120S is definitely *not* an ASIC, while designed and marketed for one special function. (And *not* because it *was* possible to re-purpose it (different demodulator, of just use the analogue multiplier).) Such was called a *special function IC*. – greybeard Apr 02 '23 at 05:25
  • @greybeard A TBA120S maybe a special function, but I was thinking more along the lines of a Si476x, which in addition to the demodulation circuitry, handles tuning, AGC, muting and stereo/mono signal conversion. Basically giving you everything you need for the signal path of an FM radio except the amplifier. – user1937198 Apr 02 '23 at 08:52
  • @greybeard what's the difference between special function and application specific? – user253751 Apr 03 '23 at 20:19
  • @user253751 I neither said nor would subscribe I see a significant difference between the two. ASIC happens to have been used for ICs developed by/with vendors applying them, not available to the open market, let alone their competition (second source requirements one cause for exceptions). Now *silicon foundries* and *IP vendors* joined the party. – greybeard Apr 03 '23 at 20:40
3

If every IC were an ASIC in some definition, then that definition of "ASIC" would not be useful, or the term "ASIC" would be superfluous.

A CPU only becomes application-specific when it is always running the same code, as is often the case with MCUs.

Without code, the CPU/MCU hardware is general purpose, unless you think "being able to run code" is an application in its own right, much like seeing "being a NAND gate" as an application of a NAND gate IC.

The dilemma here seems to be in the definition of "(specific) application" rather than in the (derived) definition of "ASIC".

ocrdu
  • 8,705
  • 21
  • 30
  • 42
  • 1
    One "out" would be to say that a given CPU is an ASIC designed to execute not arbitrary code, but code using a particular instruction set (x86 vs ARM vs PowerPC, etc) – chepner Apr 01 '23 at 19:31
  • I suppose it's possible to make an AS CPU, or at least, an AS SoC. Consider an SoC with 8 Ethernet interfaces on it - what else would it be used for but network routers? – user253751 Apr 03 '23 at 20:17