Integrated circuits (ICs) powering today’s automotive, mobile and IoT applications are enormously powerful and complex. To develop an IC, design teams often undergo an extended engineering and testing process. They’re often faced with tight schedules to bring products to market and compete with consumer demands, and are borrowing the best practices of software design to speed development.
However, IC design environments are notably different than software design environments because they rely heavily on shared files. A typical design engineer’s work area consists of large number of binary files, which tend to be rather large, often numbering in GB size. These files are often generated by electronic design automation (EDA) tools. Some of these files are generated only a few times during the life of the project, but used by almost all members of the project very often. In addition, there are usually third-party libraries and process design kits (PDKs) that the entire team relies on for practically each simulation or verification run. This setup requires a lot of high-performance storage to be accessible on several compute machines, and the productivity of teams designing integrated circuits can easily be impacted without enough high-performance storage.
We know from what our customers tell us that optimization of storage resources is one of the top criterion in the design environment, since the design data size is so large. The Cliosoft SOS design data management platform creates shared smart cache areas where all design files not being modified are hosted. User access to these design files is provided by tool-managed Linux symbolic links in the user’s working directory. This is one key feature used by most of our customers to create links to the cache workspace, since it can help reduce up to 90% of the design team’s storage requirements.
We’re always eager to optimize the user’s design environment, so we used Google’s Cloud Filestore, recently made generally available, to replicate a typical IC design environment in the cloud with high performance.
Using a Typical IC Design Environment
A typical design environment that we see design automation teams use successfully looks like this:
The environment generally works this way:
- The high-performance NAS file server exports volumes using NFS protocol
- Each machine (servers and workstations) mounts the NAS-exported NFS volumes
- Workstations rendering high-end graphics and the server access large data stored on the NFS volumes for typical activities
Design tools, such as layout editors, require rendering complex graphics displaying millions of polygons. The responsiveness of the toolset directly affects user experience. Another challenge of this on-premises setup is that shared NFS/NAS drives can easily be a bottleneck. Local drives offer strong performance, but the complex logistics involved in replicating a large amount of ever-changing data on several local drives means it’s not a practical solution for most customers.
Setting this design environment up in the cloud brings the promise of high scalability, high availability, and reliability that is difficult (if not impossible) to achieve with an in-house design environment. The challenge, however, is how this complex design environment can be replicated and perform in the cloud.
Using a Cloud-based IC Design Environment
We tried recreating a typical design environment using Google Cloud Platform (GCP), specifically Cloud Filestore and Compute Engine, to see if IaaS is viable. You can see how we set up the environment here:
Setting Up the GCP Environment
We set up Cloud Filestore and the Compute Engine instances using the web interface. We used readily available documentation to set up the environment in a couple of days, shown here:
Once the Cloud Filestore instance was available, we simply needed to:
1. Install nfs-utils
> yum install nfs-utils
2. Add the following line to /etc/fstab on the Compute Engine instances
10.198.128.10:/us_central1_nas /nfs_driv nfs defaults 0 0
3. Run the Unix mount command.
> mount -a
The data shared on the Cloud Filestore instance was available on the Compute Engine instances, ready to use.
We started our SOS primary and cache services and used the SOS client to create design workspaces on the Cloud Filestore instance. We were also able to create links-to-cache workspaces, which is a key requirement for our customers. A typical EDA environment with SOS design management was up and fully functional in a short time. We needed only a basic ISP-powered network and open-source tools like VNC for remote access.
Cloud performance testing
We also ran a couple of test suites to simulate typical design management operations that a team would do during the course of a project. The SOS test suites 13K and 74K are a part of Cliosoft’s benchmarking that simulates typical customer workflows. Both these design suites represent design activity on an image sensor chip used to develop high-resolution, low-light devices.
We ran these test suites against an on-premises network that we built to emulate the design environments at a typical Cliosoft customer.
The following table shows some performance results, with our cloud design environment on GCP running up to 75% faster. Note that this isn’t an apples-to-apples comparison, since the results are highly dependent on the on-premises infrastructure and the GCP configuration.
We noticed in benchmark testing that there was a positive effect on performance as the data moved from a local drive to a shared drive. In a typical customer environment, NAS/NFS shared drives are often the primary bottleneck affecting EDA tool performance. Tools perform much better if the on-premises environments use local disks instead of shared NFS/NAS filers. However, the complex logistics involved in replicating large amounts of quickly changing data on several local drives means it’s not a practical solution for most customers. The following table quantifies and compares performance degradation on a shared drive (NAS/Cloud Filestore) as compared to a local drive [direct-attached storage (DAS)].
Performance degrades by almost 3x when an on-premises network uses shared NFS/NAS storage. The most notable discovery was that Cloud Filestore provides a near-local drive performance level while providing all the benefits of a shared drive.
We found that using GCP with Cloud Filestore is a viable solution to replicate a typical IC design environment in the cloud. It brings high performance, high reliability and high availability to the design environment. The performance comparison between an on-premises network and GCP isn’t exactly one-to-one—the compute resources available in these environments are significantly different. However, the fact that there is virtually no difference between running these design tools on standard persistent disk and Cloud Filestore is a big discovery if you’re implementing an IC design environment.